~ubuntu-branches/ubuntu/precise/csound/precise

« back to all changes in this revision

Viewing changes to .pc/2001-lua-link.diff/interfaces/CMakeLists.txt

  • Committer: Package Import Robot
  • Author(s): Felipe Sateler
  • Date: 2012-04-19 09:26:46 UTC
  • mfrom: (3.2.19 sid)
  • Revision ID: package-import@ubuntu.com-20120419092646-96xbj1n6atuqosk2
Tags: 1:5.17.6~dfsg-1
* New upstream release
 - Do not build the wiimote opcodes (we need wiiuse).
* Add new API function to symbols file
* Disable lua opcodes, they were broken. Requires OpenMP to be enabled.
* Backport fixes from upstream:
  - Link dssi4cs with dl. Backport
  - Fix building of CsoundAC

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
## Language bindings ##
 
2
 
 
3
# C++ INTERFACE LIBRARY
 
4
 
 
5
option(BUILD_CXX_INTERFACE "Build the C++ interface library" ON)
 
6
option(BUILD_PYTHON_INTERFACE "Build the Python interface (needs BUILD_CXX_INTERFACE)" ON)
 
7
option(BUILD_JAVA_INTERFACE "Build the Java interface (needs BUILD_CXX_INTERFACE)" ON)
 
8
option(BUILD_LUA_INTERFACE "Build the Lua interface (needs BUILD_CXX_INTERFACE)" ON)
 
9
 
 
10
if(BUILD_CXX_INTERFACE)
 
11
    message(STATUS "Building C++ interface library")
 
12
    set(libcsnd_SRCS
 
13
        CppSound.cpp
 
14
        CsoundFile.cpp
 
15
        Soundfile.cpp
 
16
        csPerfThread.cpp
 
17
        cs_glue.cpp
 
18
        filebuilding.cpp)
 
19
    set(libcsnd_LIBS ${LIBSNDFILE_LIBRARY})
 
20
    set(libcsnd_CFLAGS "")
 
21
    list(APPEND libcsnd_LIBS ${CSOUNDLIB})
 
22
 
 
23
    add_library(libcsnd SHARED ${libcsnd_SRCS})
 
24
    target_link_libraries(libcsnd ${libcsnd_LIBS})
 
25
    set_target_properties(libcsnd PROPERTIES
 
26
        LINK_INTERFACE_LIBRARIES ""
 
27
        SOVERSION ${APIVERSION}
 
28
        OUTPUT_NAME csnd
 
29
        RUNTIME_OUTPUT_DIRECTORY ${BUILD_BIN_DIR}
 
30
        LIBRARY_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
 
31
        ARCHIVE_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
 
32
        )
 
33
    if(${libcsnd_CFLAGS})
 
34
        add_compiler_flags(${libcsnd_CFLAGS} TARGETS libcsnd)
 
35
    endif()
 
36
 
 
37
    install(TARGETS libcsnd
 
38
        LIBRARY DESTINATION "${LIBRARY_INSTALL_DIR}"
 
39
        ARCHIVE DESTINATION "${LIBRARY_INSTALL_DIR}")
 
40
    
 
41
endif()
 
42
 
 
43
 
 
44
# SWIG INTERFACES
 
45
FIND_PACKAGE(SWIG)
 
46
FIND_PACKAGE(PythonLibs)
 
47
FIND_PACKAGE(JNI)
 
48
FIND_PACKAGE(Java)
 
49
FIND_PACKAGE(Lua51)
 
50
 
 
51
check_deps(BUILD_PYTHON_INTERFACE SWIG_FOUND BUILD_CXX_INTERFACE PYTHONLIBS_FOUND)
 
52
check_deps(BUILD_JAVA_INTERFACE SWIG_FOUND BUILD_CXX_INTERFACE JNI_FOUND JAVA_FOUND)
 
53
check_deps(BUILD_LUA_INTERFACE SWIG_FOUND BUILD_CXX_INTERFACE LUA51_FOUND)
 
54
 
 
55
if(BUILD_PYTHON_INTERFACE OR BUILD_JAVA_INTERFACE OR BUILD_LUA_INTERFACE)
 
56
 
 
57
    include(${SWIG_USE_FILE})
 
58
 
 
59
    include_directories(${CMAKE_CURRENT_SOURCE_DIR})
 
60
 
 
61
    set(CMAKE_SWIG_FLAGS ${libcsound_CFLAGS})
 
62
    list(APPEND CMAKE_SWIG_FLAGS "-includeall" "-verbose")
 
63
 
 
64
    if(USE_DOUBLE)
 
65
        list(APPEND CMAKE_SWIG_FLAGS "-DUSE_DOUBLE")
 
66
    endif(USE_DOUBLE)
 
67
 
 
68
    set(CMAKE_SWIG_OUTDIR ${BUILD_LIB_DIR})
 
69
 
 
70
    if(BUILD_PYTHON_INTERFACE)
 
71
        INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
 
72
 
 
73
        set(swigpython_LIBS ${PYTHON_LIBRARIES} ${CSOUNDLIB} ${LIBSNDFILE_LIBRARY} libcsnd)
 
74
    
 
75
        SET_SOURCE_FILES_PROPERTIES(python_interface.i
 
76
            PROPERTIES CPLUSPLUS ON
 
77
            SWIG_MODULE_NAME csnd)
 
78
        SWIG_ADD_MODULE(csnd python python_interface.i)
 
79
        SWIG_LINK_LIBRARIES(csnd ${swigpython_LIBS})
 
80
    
 
81
        set_target_properties(${SWIG_MODULE_csnd_REAL_NAME} PROPERTIES
 
82
            RUNTIME_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
 
83
            LIBRARY_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
 
84
            ARCHIVE_OUTPUT_DIRECTORY ${BUILD_LIB_DIR})
 
85
 
 
86
        install(TARGETS ${SWIG_MODULE_csnd_REAL_NAME}
 
87
            LIBRARY DESTINATION "${PYTHON_MODULE_INSTALL_DIR}"
 
88
            ARCHIVE DESTINATION "${PYTHON_MODULE_INSTALL_DIR}")
 
89
        install(FILES ${BUILD_LIB_DIR}/csnd.py
 
90
            DESTINATION ${PYTHON_MODULE_INSTALL_DIR})
 
91
 
 
92
    endif()
 
93
 
 
94
    if(BUILD_JAVA_INTERFACE)
 
95
        # The java package needs this unset or it will litter us with .java files
 
96
        unset(CMAKE_SWIG_OUTDIR)
 
97
        INCLUDE_DIRECTORIES(${JNI_INCLUDE_DIRS})
 
98
        set(swigjava_LIBS ${JNI_LIBRARIES} ${CSOUNDLIB} ${LIBSNDFILE_LIBRARY} libcsnd)
 
99
 
 
100
        SET_SOURCE_FILES_PROPERTIES(java_interface.i PROPERTIES CPLUSPLUS ON)
 
101
        SET_SOURCE_FILES_PROPERTIES(java_interface.i SWIG_FLAGS "-package" "csnd")
 
102
        SWIG_ADD_MODULE(_jcsound java java_interface.i)
 
103
        SWIG_LINK_LIBRARIES(_jcsound ${swigjava_LIBS})
 
104
 
 
105
        ADD_CUSTOM_COMMAND(TARGET _jcsound
 
106
            POST_BUILD
 
107
            COMMAND cmake -E make_directory ./csnd
 
108
            COMMAND ${JAVA_COMPILE} *.java -d ./csnd
 
109
            COMMAND ${JAVA_ARCHIVE} cf ../csnd.jar csnd
 
110
            COMMENT "Building JAVA package csnd.jar")
 
111
 
 
112
        set_target_properties(_jcsound PROPERTIES
 
113
            RUNTIME_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
 
114
            LIBRARY_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
 
115
            ARCHIVE_OUTPUT_DIRECTORY ${BUILD_LIB_DIR})
 
116
 
 
117
        install(TARGETS _jcsound
 
118
            LIBRARY DESTINATION "${JAVA_MODULE_INSTALL_DIR}"
 
119
            ARCHIVE DESTINATION "${JAVA_MODULE_INSTALL_DIR}")
 
120
        install(FILES ${BUILD_LIB_DIR}/csnd.jar
 
121
            DESTINATION ${JAVA_MODULE_INSTALL_DIR})
 
122
    
 
123
    endif()
 
124
 
 
125
    if(BUILD_LUA_INTERFACE)
 
126
        INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR})
 
127
 
 
128
        set(swiglua_LIBS ${LUA_LIBRARIES} ${CSOUNDLIB} libcsnd)
 
129
    
 
130
        SET_SOURCE_FILES_PROPERTIES(lua_interface.i
 
131
            PROPERTIES CPLUSPLUS ON
 
132
            SWIG_MODULE_NAME luaCsnd)
 
133
        SWIG_ADD_MODULE(luaCsnd lua lua_interface.i)
 
134
        SWIG_LINK_LIBRARIES(luaCsnd ${swiglua_LIBS})
 
135
    
 
136
        set_target_properties(${SWIG_MODULE_luaCsnd_REAL_NAME} PROPERTIES
 
137
            RUNTIME_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
 
138
            LIBRARY_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
 
139
            ARCHIVE_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
 
140
            PREFIX "")
 
141
 
 
142
        install(TARGETS luaCsnd
 
143
            LIBRARY DESTINATION "${LUA_MODULE_INSTALL_DIR}"
 
144
            ARCHIVE DESTINATION "${LUA_MODULE_INSTALL_DIR}")
 
145
 
 
146
    endif()
 
147
 
 
148
endif()