3 add_definitions("-DSC_FFT_GREEN")
8 include_directories(${CMAKE_SOURCE_DIR}/include/common
9 ${CMAKE_SOURCE_DIR}/include/lang
10 ${CMAKE_SOURCE_DIR}/external_libraries/boost_lockfree
11 ${CMAKE_SOURCE_DIR}/external_libraries/boost
12 ${CMAKE_SOURCE_DIR}/external_libraries/threadpool
13 ${CMAKE_SOURCE_DIR}/external_libraries/yaml-cpp-0.2.6/include
14 ${CMAKE_SOURCE_DIR}/external_libraries/TLSF-2.4.6/src
15 ${CMAKE_SOURCE_DIR}/include/plugin_interface
19 include_directories("LangPrimSource/${HID_UTIL_DIR}")
20 elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
25 # apple bundles an old nongpl readline so we say no even though it is usually detectable
26 set(READLINE_FOUND false)
28 set(READLINE_FOUND false)
30 find_package(Readline)
35 LangPrimSource/SC_Wii.cpp
36 LangPrimSource/PyrSignalPrim.cpp
37 LangPrimSource/PyrSched.cpp
38 LangPrimSource/PyrPrimitive.cpp
39 LangPrimSource/PyrMathPrim.cpp
40 LangPrimSource/SC_ComPort.cpp
41 LangPrimSource/OSCData.cpp
42 LangPrimSource/PyrArchiver.cpp
43 LangPrimSource/PyrArrayPrimitives.cpp
44 LangPrimSource/PyrBitPrim.cpp
45 LangPrimSource/PyrCharPrim.cpp
46 LangPrimSource/PyrFilePrim.cpp
47 LangPrimSource/PyrListPrim.cpp
48 LangPrimSource/PyrPlatformPrim.cpp
49 LangPrimSource/PyrStringPrim.cpp
50 LangPrimSource/PyrSymbolPrim.cpp
51 LangPrimSource/PyrUnixPrim.cpp
52 LangSource/AdvancingAllocPool.cpp
53 LangSource/ByteCodeArray.cpp
54 LangSource/DumpParseNode.cpp
56 LangSource/InitAlloc.cpp
57 LangSource/PyrFileUtils.cpp
58 LangSource/PyrInterpreter3.cpp
59 LangSource/PyrLexer.cpp
60 LangSource/PyrMathOps.cpp
61 LangSource/PyrMathSupport.cpp
62 LangSource/PyrMessage.cpp
63 LangSource/PyrObject.cpp
64 LangSource/PyrParseNode.cpp
65 LangSource/PyrSignal.cpp
66 LangSource/PyrSymbolTable.cpp
67 LangSource/SC_LanguageClient.cpp
68 LangSource/SC_LibraryConfig.cpp
69 LangSource/SC_TerminalClient.cpp
71 LangSource/SimpleStack.cpp
72 LangSource/VMGlobals.cpp
73 LangSource/dumpByteCodes.cpp
75 ${CMAKE_SOURCE_DIR}/common/fftlib.c
76 ${CMAKE_SOURCE_DIR}/common/SC_fftlib.cpp
77 ${CMAKE_SOURCE_DIR}/common/SC_AllocPool.cpp
78 ${CMAKE_SOURCE_DIR}/common/SC_DirUtils.cpp
79 ${CMAKE_SOURCE_DIR}/common/SC_Sem.cpp
80 ${CMAKE_SOURCE_DIR}/common/SC_StandAloneInfo_Darwin.cpp
81 ${CMAKE_SOURCE_DIR}/common/SC_StringBuffer.cpp
82 ${CMAKE_SOURCE_DIR}/common/SC_StringParser.cpp
83 ${CMAKE_SOURCE_DIR}/common/scsynthsend.cpp
84 ${CMAKE_SOURCE_DIR}/common/sc_popen.cpp
87 file(GLOB boost_system_sources ../external_libraries/boost/libs/system/src/*cpp)
88 file(GLOB boost_fs_sources ../external_libraries/boost/libs/filesystem/v3/src/*cpp)
89 file(GLOB boost_regex_sources ../external_libraries/boost/libs/regex/src/*cpp)
90 list(APPEND sclang_sources ${boost_fs_sources} ${boost_system_sources} ${boost_regex_sources})
92 file(GLOB yaml_sources ../external_libraries/yaml-cpp-0.2.6/src/*cpp)
93 list(APPEND sclang_sources ${yaml_sources})
96 list(APPEND sclang_sources LangPrimSource/PyrSerialPrim.cpp)
100 list(APPEND sclang_sources ${CMAKE_SOURCE_DIR}/common/SC_Win32Utils.cpp)
104 include_directories(../platform/windows/compat_stuff)
105 list(APPEND sclang_sources ../platform/windows/compat_stuff/getopt.c)
108 set(sclang_parser_source LangSource/Bison/lang11d_tab.cpp)
110 add_definitions(-DYYSTACK_USE_ALLOCA)
112 if (SC_QT AND DSO_VISIBILITY)
113 remove_definitions(-fvisibility=hidden)
118 list(APPEND sclang_sources
119 LangPrimSource/WiiMote_OSX/wiiremote.c
120 LangPrimSource/SC_HID.cpp
121 LangPrimSource/${HID_UTIL_DIR}/HID_Utilities.c
122 LangPrimSource/${HID_UTIL_DIR}/HID_Name_Lookup.c
123 LangPrimSource/${HID_UTIL_DIR}/HID_Queue_Utilities.c
124 LangPrimSource/${HID_UTIL_DIR}/HID_Error_Handler.c
125 LangPrimSource/SC_CoreMIDI.cpp
126 LangPrimSource/SC_CoreAudioPrim.cpp
127 LangPrimSource/SC_Speech.M
129 add_definitions(-DHAVE_SPEECH)
130 if (CMAKE_COMPILER_IS_GNUCXX)
131 set_source_files_properties(LangPrimSource/SC_Speech.M
132 PROPERTIES COMPILE_FLAGS "-x objective-c++ -fobjc-exceptions")
134 if(NOT (HID_UTIL_DIR MATCHES "HID_Utilities_10_4"))
135 list(APPEND sclang_sources
136 LangPrimSource/${HID_UTIL_DIR}/IOHIDElement_.c
137 LangPrimSource/${HID_UTIL_DIR}/IOHIDDevice_.c
142 list(APPEND sclang_sources LangPrimSource/SC_AlsaMIDI.cpp)
144 list(APPEND sclang_sources LangPrimSource/SC_LID.cpp)
145 add_definitions(-DHAVE_LID)
151 include_directories (../platform/windows/compat_stuff)
152 list(APPEND sclang_sources ../platform/windows/compat_stuff/getopt.c)
156 if(CMAKE_SYSTEM_NAME MATCHES "Linux")
158 find_package(Bluetooth)
160 if (BLUETOOTH_FOUND AND CWIID_FOUND)
161 add_definitions(-DHAVE_WII)
162 include_directories(${CWIID_INCLUDE_DIRS} ${BLUETOOTH_INCLUDE_DIRS})
163 message(STATUS "Compiling with WiiMote support")
165 message(SEND_ERROR "Cannot find libcwiid or libbluetooth")
168 add_definitions(-DHAVE_WII)
169 list(APPEND sclang_sources LangPrimSource/WiiMote_OSX/wiiremote.c)
170 include_directories(LangPrimSource/WiiMote_OSX)
175 set(QT_COLLIDER_LANG_CLIENT ON)
176 include(../QtCollider/CMakeLists.txt)
177 list(APPEND sclang_sources ${QT_COLLIDER_SRCS})
180 if(0 AND FINAL_BUILD) # sclang final-builds are broken
181 CREATE_FINAL_FILE(libsclang_final.cpp ${sclang_sources})
182 add_library(libsclang SHARED libsclang_final.cpp ${sclang_parser_source})
184 add_library(libsclang SHARED ${sclang_sources} ${sclang_parser_source})
187 set_property(TARGET libsclang
189 PROPERTY COMPILE_DEFINITIONS BUILDING_SUPERCOLLIDER)
192 if (BLUETOOTH_FOUND AND CWIID_FOUND)
193 target_link_libraries(libsclang ${BLUETOOTH_LIBRARIES} ${CWIID_LIBRARIES})
195 target_link_libraries(libsclang "-framework IOBluetooth")
200 target_link_libraries(libsclang libscsynth)
202 set_property(TARGET libsclang
204 PROPERTY COMPILE_DEFINITIONS NO_INTERNAL_SERVER
209 set_property(TARGET libsclang
210 PROPERTY OUTPUT_NAME sclang)
213 ## external libraries
215 message(STATUS "Compiling with Readline support")
216 set_property(TARGET libsclang
218 PROPERTY COMPILE_DEFINITIONS HAVE_READLINE)
219 target_link_libraries(libsclang ${READLINE_LIBRARY})
220 endif(READLINE_FOUND)
223 target_link_libraries(libsclang "-framework Carbon")
224 target_link_libraries(libsclang "-framework CoreAudio")
225 target_link_libraries(libsclang "-framework CoreMIDI")
226 target_link_libraries(libsclang "-framework IOKit")
227 target_link_libraries(libsclang "-framework CoreServices")
231 message(STATUS "Compiling with ALSA midi support")
232 set_property(TARGET libsclang
234 PROPERTY COMPILE_DEFINITIONS HAVE_ALSA=1)
235 target_link_libraries(libsclang ${ALSA_LIBRARY})
239 include_directories(${SNDFILE_INCLUDE_DIR})
240 target_link_libraries(libsclang ${SNDFILE_LIBRARIES})
241 elseif(NOT NO_LIBSNDFILE)
242 message(SEND_ERROR "Cannot find libsndfile")
246 include_directories (${FFTW3F_INCLUDE_DIR})
247 target_link_libraries(libsclang ${FFTW3F_LIBRARY})
251 target_link_libraries(libsclang wsock32 ws2_32)
255 add_definitions(-DGC_SANITYCHECK)
258 target_link_libraries(libsclang ${PTHREADS_LIBRARY} supercollider_boost_thread)
261 target_link_libraries(libsclang ${QT_COLLIDER_LIBS})
264 add_executable(sclang LangSource/cmdLineFuncs.cpp)
265 target_link_libraries(sclang libsclang boost_thread)
267 set_property(TARGET sclang
269 PROPERTY COMPILE_DEFINITIONS USE_SC_TERMINAL_CLIENT)
272 set_property(TARGET sclang libsclang
273 APPEND PROPERTY COMPILE_FLAGS "-flto -flto-report")
275 set_property(TARGET sclang libsclang
276 APPEND PROPERTY LINK_FLAGS "-flto -flto-report -fwhole-program")
280 # determines the app name and app install location (scappbundlename, scappdir):
281 include (${CMAKE_SOURCE_DIR}/cmake_modules/MacAppFolder.cmake)
283 install(TARGETS libsclang sclang
284 DESTINATION "${scappauxresourcesdir}"
285 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
288 install(TARGETS libsclang sclang
289 DESTINATION "SuperCollider"
290 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
292 install(TARGETS libsclang sclang
293 LIBRARY DESTINATION "lib"
294 RUNTIME DESTINATION "bin"
295 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)