1 cmake_minimum_required (VERSION 2.6)
2 project (SuperCollider)
5 include (cmake_modules/FinalFile.cmake)
7 if (NOT CMAKE_BUILD_TYPE)
8 message(STATUS "Build type defaulting to \"Release\"")
9 set(CMAKE_BUILD_TYPE "Release")
12 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules
16 "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/cmake_uninstall.cmake.in"
17 "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
20 ADD_CUSTOM_TARGET(uninstall
21 "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
23 ADD_CUSTOM_TARGET(setMainVersion ALL
24 sh ${CMAKE_CURRENT_SOURCE_DIR}/setMainVersion.sh
25 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
30 STRING(REGEX REPLACE "^.*MacOSX10.([0-9]+).*$" "\\1" MAC_OSX_SDK_VERSION "${CMAKE_OSX_SYSROOT}")
32 if($MAC_OSX_SDK_VERSION GREATER 4)
33 set(HID_UTIL_DIR "HID_Utilities")
35 set(HID_UTIL_DIR "HID_Utilities_10_4")
37 MESSAGE( STATUS "Using HID Utilities from folder '${HID_UTIL_DIR}'")
40 #############################################
43 if (${CMAKE_COMPILER_IS_GNUCXX})
44 add_definitions("-ffast-math" "-fschedule-insns2" "-fomit-frame-pointer")
46 option(DSO_VISIBILITY "DSO visibility support for gcc" OFF)
49 add_definitions(-fvisibility=hidden)
53 add_definitions("-D_REENTRANT")
55 add_definitions("-pthread")
60 set_property(DIRECTORY
62 PROPERTY COMPILE_DEFINITIONS SC_DARWIN)
63 exec_program(${CMAKE_C_COMPILER} ARGS --version OUTPUT_VARIABLE _gcc_version_info)
64 if ("${_gcc_version_info}" MATCHES "Apple")
65 add_definitions("-fpascal-strings")
67 elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
68 add_definitions("-DSC_LINUX")
69 add_definitions(-DSC_DATA_DIR="${CMAKE_INSTALL_PREFIX}/share/SuperCollider")
73 set_property(DIRECTORY
75 PROPERTY COMPILE_DEFINITIONS SC_WIN32 NOMINMAX _WINSOCKAPI_)
76 SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_RELEASE} /MTd")
77 SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_DEBUG} /MT")
81 #############################################
82 # some default libraries
84 find_package(Pthreads)
86 if (NOT PTHREADS_FOUND)
87 message(SEND_ERROR "cannot find libpthreads")
89 include_directories(${PTHREADS_INCLUDE_DIR})
91 find_library(MATH_LIBRARY m)
96 add_definitions("-DHAVE_LIBCURL")
97 include_directories(${CURL_INCLUDE_DIRS})
101 #############################################
103 option(NOVA_SIMD "Build with nova-simd support." ON)
104 option(FINAL_BUILD "Build as single source file." OFF)
106 option(CURL "Build with curl for remote file download." ON)
108 option(FFT_GREEN "Use internal 'Green' FFT lib rather than FFTW. (Not recommended.)" OFF)
109 mark_as_advanced(FFT_GREEN)
111 option(SSE "Compile with support for SSE instructions.")
112 option(SSE41 "Compile with support for SSE4.1 instructions.")
113 option(SSE42 "Compile with support for SSE4.2 instructions.")
116 if(CMAKE_SYSTEM_NAME MATCHES "Linux")
117 option(SUPERNOVA "Build with supernova as optional audio synthesis server" ON)
119 option(SUPERNOVA "Build with supernova as optional audio synthesis server" OFF)
121 option(SN_MEMORY_DEBUGGING "Build supernova for memory debugging (disable memory pools).")
123 option(NO_LIBSNDFILE "Disable soundfile functionality. (Not recommended.)" OFF)
124 mark_as_advanced(NO_LIBSNDFILE)
127 option(SCLANG_SERVER "Build with internal server." ON)
130 if(CMAKE_SYSTEM_NAME MATCHES "Linux")
131 option(SC_WII "Build sclang with WII support" ON)
134 if(CMAKE_COMPILER_IS_GNUCXX)
135 option(NATIVE "Optimize binary for this architecture (binaries may not run on other machines, requires gcc-4.3 or higher).")
136 option(LTO "Use GCC's link time optimizer' (experimental).")
139 #############################################
140 # some preprocessor flags
141 if(CMAKE_COMPILER_IS_GNUCXX)
143 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse -mfpmath=sse")
144 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -mfpmath=sse")
147 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.1")
148 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")
151 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2")
152 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2")
155 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native")
156 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
163 #############################################
165 add_subdirectory(server)
166 add_subdirectory(lang)
167 add_subdirectory(bindings)
168 add_subdirectory(platform)
169 add_subdirectory(editors)
170 add_subdirectory(external_libraries)
171 add_subdirectory(testsuite)
173 if(CMAKE_SYSTEM_NAME MATCHES "Linux")
174 install(DIRECTORY include
175 DESTINATION ${CMAKE_INSTALL_PREFIX}/include/SuperCollider
181 # determines the app name and app install location (scappbundlename, scappdir):
182 include (cmake_modules/MacAppFolder.cmake)
184 set(auxresourcesdir ${scappauxresourcesdir})
186 # Some aux files which go in the app's folder
187 install(FILES README ChangeLog
188 DESTINATION ${auxresourcesdir}
190 install(FILES COPYING AUTHORS
191 DESTINATION ${scappdir}
194 set(auxresourcesdir "share/SuperCollider")
197 install(DIRECTORY SCClassLibrary
198 DESTINATION ${auxresourcesdir}
202 install(DIRECTORY Help
203 DESTINATION ${auxresourcesdir}
207 install(DIRECTORY examples
208 DESTINATION ${auxresourcesdir}
212 install(DIRECTORY sounds
213 DESTINATION ${auxresourcesdir}
217 #############################################
220 set(CPACK_PACKAGE_VERSION_MAJOR 3)
221 set(CPACK_PACKAGE_VERSION_MINOR 5)
222 set(CPACK_PACKAGE_VERSION_PATCH dev)