Midi: added more controller related constants
[lmms.git] / CMakeLists.txt
blob2dffb35a90426087eb52e51011edceac040ae00f
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0)
3 PROJECT(lmms)
5 SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
7 IF(COMMAND CMAKE_POLICY)
8         CMAKE_POLICY(SET CMP0005 NEW)
9         CMAKE_POLICY(SET CMP0003 NEW)
10 ENDIF(COMMAND CMAKE_POLICY)
12 INCLUDE(AddFileDependencies)
13 INCLUDE(CheckIncludeFiles)
14 INCLUDE(CheckLibraryExists)
15 INCLUDE(FindPkgConfig)
17 SET(VERSION_MAJOR "0")
18 SET(VERSION_MINOR "4")
19 SET(VERSION_PATCH "90")
20 #SET(VERSION_SUFFIX "")
21 IF(NOT VERSION_SUFFIX)
22         IF(EXISTS ${CMAKE_SOURCE_DIR}/.svn)
23                 INCLUDE(FindSubversion)
24                 IF(Subversion_FOUND)
25                         SET(ORIG_LANG "$ENV{LANG}")
26                         SET(ENV{LANG} "C")
27                         EXECUTE_PROCESS(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
28                                         COMMAND ${Subversion_SVN_EXECUTABLE} info
29                                         COMMAND grep "^Revision:"
30                                         OUTPUT_VARIABLE SVN_REV)
31                         SET(ENV{LANG} "${ORIG_LANG}")
32                         STRING(REGEX MATCH "[0-9]+" VERSION_SUFFIX "${SVN_REV}")
33                 ENDIF(Subversion_FOUND)
34         ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/.svn)
35 ENDIF(NOT VERSION_SUFFIX)
37 SET(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
38 IF(VERSION_SUFFIX)
39         SET(VERSION "${VERSION}-${VERSION_SUFFIX}")
40 ENDIF(VERSION_SUFFIX)
43 INCLUDE(DetectMachine)
46 OPTION(WANT_ALSA        "Include ALSA (Advanced Linux Sound Architecture) support" ON)
47 OPTION(WANT_CALF        "Include CALF LADSPA plugins" ON)
48 OPTION(WANT_CAPS        "Include C* Audio Plugin Suite (LADSPA plugins)" ON)
49 OPTION(WANT_CMT         "Include Computer Music Toolkit LADSPA plugins" ON)
50 OPTION(WANT_FFTW3F      "Include SpectrumAnalyzer and ZynAddSubFX plugin" ON)
51 OPTION(WANT_JACK        "Include JACK (Jack Audio Connection Kit) support" ON)
52 OPTION(WANT_LV2         "Include LV2 support" ON)
53 OPTION(WANT_OGGVORBIS   "Include OGG/Vorbis support" ON)
54 OPTION(WANT_PULSEAUDIO  "Include PulseAudio support" ON)
55 OPTION(WANT_PORTAUDIO   "Include PortAudio support" ON)
56 OPTION(WANT_SDL         "Include SDL (Simple DirectMedia Layer) support" ON)
57 OPTION(WANT_SF2         "Include SoundFont2 player plugin" ON)
58 OPTION(WANT_STK         "Include Stk (Synthesis Toolkit) support" ON)
59 OPTION(WANT_SYSTEM_SR   "Use system's libsamplerate" ON)
60 OPTION(WANT_SWH         "Include Steve Harris's LADSPA plugins" ON)
61 OPTION(WANT_TAP         "Include Tom's Audio Processing LADSPA plugins" ON)
62 OPTION(WANT_VST         "Include VST support" ON)
63 OPTION(WANT_VST_NOWINE  "Include partial VST support (without wine)" OFF)
64 OPTION(WANT_WINMM       "Include WinMM MIDI support" OFF)
65 OPTION(WANT_ZIP         "Include zip support" ON)
66 OPTION(WANT_FLAC        "Include flac support" ON)
68 IF(LMMS_BUILD_WIN32)
69         SET(WANT_ALSA OFF)
70         SET(WANT_JACK OFF)
71         SET(WANT_PULSEAUDIO OFF)
72         SET(WANT_SYSTEM_SR OFF)
73         SET(WANT_WINMM ON)
74         SET(LMMS_HAVE_WINMM TRUE)
75         SET(STATUS_ALSA "<not supported on this platform>")
76         SET(STATUS_JACK "<not supported on this platform>")
77         SET(STATUS_PULSEAUDIO "<not supported on this platform>")
78         SET(STATUS_WINMM "OK")
79 ELSE(LMMS_BUILD_WIN32)
80         SET(STATUS_WINMM "<not supported on this platform>")
81 ENDIF(LMMS_BUILD_WIN32)
85 CHECK_INCLUDE_FILES(stdint.h LMMS_HAVE_STDINT_H)
86 CHECK_INCLUDE_FILES(stdbool.h LMMS_HAVE_STDBOOL_H)
87 CHECK_INCLUDE_FILES(stdlib.h LMMS_HAVE_STDLIB_H)
88 CHECK_INCLUDE_FILES(pthread.h LMMS_HAVE_PTHREAD_H)
89 CHECK_INCLUDE_FILES(semaphore.h LMMS_HAVE_SEMAPHORE_H)
90 CHECK_INCLUDE_FILES(unistd.h LMMS_HAVE_UNISTD_H)
91 CHECK_INCLUDE_FILES(sys/types.h LMMS_HAVE_SYS_TYPES_H)
92 CHECK_INCLUDE_FILES(sys/ipc.h LMMS_HAVE_SYS_IPC_H)
93 CHECK_INCLUDE_FILES(sys/shm.h LMMS_HAVE_SYS_SHM_H)
94 CHECK_INCLUDE_FILES(sys/time.h LMMS_HAVE_SYS_TIME_H)
95 CHECK_INCLUDE_FILES(sys/wait.h LMMS_HAVE_SYS_WAIT_H)
96 CHECK_INCLUDE_FILES(sys/select.h LMMS_HAVE_SYS_SELECT_H)
97 CHECK_INCLUDE_FILES(stdarg.h LMMS_HAVE_STDARG_H)
98 CHECK_INCLUDE_FILES(signal.h LMMS_HAVE_SIGNAL_H)
99 CHECK_INCLUDE_FILES(sched.h LMMS_HAVE_SCHED_H)
100 CHECK_INCLUDE_FILES(sys/soundcard.h LMMS_HAVE_SYS_SOUNDCARD_H)
101 CHECK_INCLUDE_FILES(soundcard.h LMMS_HAVE_SOUNDCARD_H)
102 CHECK_INCLUDE_FILES(fcntl.h LMMS_HAVE_FCNTL_H)
103 CHECK_INCLUDE_FILES(sys/ioctl.h LMMS_HAVE_SYS_IOCTL_H)
104 CHECK_INCLUDE_FILES(ctype.h LMMS_HAVE_CTYPE_H)
105 CHECK_INCLUDE_FILES(string.h LMMS_HAVE_STRING_H)
106 CHECK_INCLUDE_FILES(process.h LMMS_HAVE_PROCESS_H)
107 CHECK_INCLUDE_FILES(locale.h LMMS_HAVE_LOCALE_H)
109 # check for Qt4
110 SET(QT_MIN_VERSION "4.6.0" COMPONENTS QtCore QtGui QtXml QtNetwork)
111 FIND_PACKAGE(Qt4 REQUIRED)
112 SET(QT_USE_QTXML 1)
113 SET(QT_USE_QTNETWORK 1)
114 EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_TRANSLATIONS" OUTPUT_VARIABLE QT_TRANSLATIONS_DIR)
115 IF(EXISTS "${QT_TRANSLATIONS_DIR}")
116         MESSAGE("-- Found Qt translations in ${QT_TRANSLATIONS_DIR}")
117         ADD_DEFINITIONS(-D'QT_TRANSLATIONS_DIR="${QT_TRANSLATIONS_DIR}"')
118 ENDIF(EXISTS "${QT_TRANSLATIONS_DIR}")
119 IF(NOT WIN32)
120         STRING(REPLACE "-DQT_DLL" "" QT_DEFINITIONS "${QT_DEFINITIONS}")
121 ENDIF(NOT WIN32)
122 INCLUDE(${QT_USE_FILE})
124 # check for libsndfile
125 PKG_CHECK_MODULES(SNDFILE REQUIRED sndfile>=1.0.11)
126 IF(NOT SNDFILE_FOUND)
127         MESSAGE(FATAL_ERROR "LMMS requires libsndfile1 and libsndfile1-dev >= 1.0.11 - please install, remove CMakeCache.txt and try again!")
128 ENDIF(NOT SNDFILE_FOUND)
130 IF(WANT_CALF)
131 SET(LMMS_HAVE_CALF TRUE)
132 SET(STATUS_CALF "OK")
133 ELSE(WANT_CALF)
134 SET(STATUS_CALF "not built as requested")
135 ENDIF(WANT_CALF)
137 IF(WANT_CAPS)
138 SET(LMMS_HAVE_CAPS TRUE)
139 SET(STATUS_CAPS "OK")
140 ELSE(WANT_CAPS)
141 SET(STATUS_CAPS "not built as requested")
142 ENDIF(WANT_CAPS)
144 IF(WANT_CMT)
145 SET(LMMS_HAVE_CMT TRUE)
146 SET(STATUS_CMT "OK")
147 ELSE(WANT_CMT)
148 SET(STATUS_CMT "not built as requested")
149 ENDIF(WANT_CMT)
151 IF(WANT_SWH)
152 SET(LMMS_HAVE_SWH TRUE)
153 SET(STATUS_SWH "OK")
154 ELSE(WANT_SWH)
155 SET(STATUS_SWH "not built as requested")
156 ENDIF(WANT_SWH)
158 IF(WANT_TAP)
159 SET(LMMS_HAVE_TAP TRUE)
160 SET(STATUS_TAP "OK")
161 ELSE(WANT_TAP)
162 SET(STATUS_TAP "not built as requested")
163 ENDIF(WANT_TAP)
166 # check for SDL
167 IF(WANT_SDL)
168         SET(SDL_BUILDING_LIBRARY TRUE)
169         FIND_PACKAGE(SDL)
170         IF(SDL_FOUND)
171                 SET(LMMS_HAVE_SDL TRUE)
172                 SET(STATUS_SDL "OK")
173         ELSE(SDL_FOUND)
174                 SET(STATUS_SDL "not found, please install libsdl1.2-dev (or similiar) "
175                         "if you require SDL support")
176         ENDIF(SDL_FOUND)
177 ENDIF(WANT_SDL)
178 IF(NOT LMMS_HAVE_SDL)
179         SET(SDL_INCLUDE_DIR "")
180 ELSE(NOT LMMS_HAVE_SDL)
181         IF(NOT SDL_INCLUDE_DIR)
182                 SET(SDL_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/include)
183         ENDIF(NOT SDL_INCLUDE_DIR)
184 ENDIF(NOT LMMS_HAVE_SDL)
186 # check for libzip
187 IF(WANT_ZIP)
188         FIND_PACKAGE(ZIP)
189         IF(ZIP_FOUND)
190                 SET(LMMS_HAVE_ZIP TRUE)
191                 SET(STATUS_ZIP "OK")
192         ELSE(ZIP_FOUND)
193                 SET(STATUS_ZIP "not found, install libzip-dev (or similar) "
194                         "if you want to import FL .zip files")
195         ENDIF(ZIP_FOUND)
196 ENDIF(WANT_ZIP)
198 # check for libflac++
199 IF(WANT_FLAC)
200     FIND_PACKAGE(FLAC)
201     IF(FLAC_FOUND)
202         SET(LMMS_HAVE_FLAC TRUE)
203         SET(STATUS_FLAC "OK")
204     ELSE(FLAC_FOUND)
205         SET(STATUS_FLAC "not found, install libflac++-dev (or similar) "
206             "if you want flac as an export format")
207     ENDIF(FLAC_FOUND)
208 ENDIF(WANT_FLAC)
210 # check for Stk
211 IF(WANT_STK)
212         FIND_PACKAGE(STK)
213         IF(STK_FOUND)
214                 SET(LMMS_HAVE_STK TRUE)
215                 SET(STATUS_STK "OK")
216         ELSE(STK_FOUND)
217                 SET(STK_INCLUDE_DIR "")
218                 SET(STATUS_STK "not found, please install libstk0-dev (or similiar) "
219                         "if you require the Mallets instrument")
220         ENDIF(STK_FOUND)
221 ENDIF(WANT_STK)
224 # check for PortAudio
225 IF(WANT_PORTAUDIO)
226         FIND_PACKAGE(Portaudio)
227         IF(PORTAUDIO_FOUND)
228                 SET(LMMS_HAVE_PORTAUDIO TRUE)
229                 SET(STATUS_PORTAUDIO "OK")
230         ELSE(PORTAUDIO_FOUND)
231                 SET(STATUS_PORTAUDIO "not found, please install portaudio19-dev (or similiar, version >= 1.9) "
232                         "if you require PortAudio support")
233         ENDIF(PORTAUDIO_FOUND)
234 ENDIF(WANT_PORTAUDIO)
237 # check for PulseAudio
238 IF(WANT_PULSEAUDIO)
239         FIND_PACKAGE(PulseAudio)
240         IF(PULSEAUDIO_FOUND)
241                 SET(LMMS_HAVE_PULSEAUDIO TRUE)
242                 SET(STATUS_PULSEAUDIO "OK")
243         ELSE(PULSEAUDIO_FOUND)
244                 SET(STATUS_PULSEAUDIO "not found, please install libpulse-dev (or similiar) "
245                         "if you require PulseAudio support")
246         ENDIF(PULSEAUDIO_FOUND)
247 ENDIF(WANT_PULSEAUDIO)
248 IF(NOT LMMS_HAVE_PULSEAUDIO)
249         SET(PULSEAUDIO_INCLUDE_DIR "")
250         SET(PULSEAUDIO_LIBRARIES "")
251 ENDIF(NOT LMMS_HAVE_PULSEAUDIO)
254 # check for OGG/Vorbis-libraries
255 IF(WANT_OGGVORBIS)
256         FIND_PACKAGE(OggVorbis)
257         IF(OGGVORBIS_FOUND)
258                 SET(LMMS_HAVE_OGGVORBIS TRUE)
259                 SET(STATUS_OGGVORBIS "OK")
260         ELSE(OGGVORBIS_FOUND)
261                 SET(STATUS_OGGVORBIS "not found, libogg-dev and libvorbis-dev (or similiar) "
262                         "is highly recommended")
263         ENDIF(OGGVORBIS_FOUND)
264 ENDIF(WANT_OGGVORBIS)
267 # check whether to enable OSS-support
268 IF(LMMS_HAVE_SOUNDCARD_H OR LMMS_HAVE_SYS_SOUNDCARD_H)
269         SET(LMMS_HAVE_OSS TRUE)
270         SET(STATUS_OSS "OK")
271 ELSE(LMMS_HAVE_SOUNDCARD_H OR LMMS_HAVE_SYS_SOUNDCARD_H)
272         SET(STATUS_OSS "<not found or not supported on this platform>")
273 ENDIF(LMMS_HAVE_SOUNDCARD_H OR LMMS_HAVE_SYS_SOUNDCARD_H)
276 # check for ALSA
277 IF(WANT_ALSA)
278         FIND_PACKAGE(Alsa)
279         IF(ALSA_FOUND)
280                 SET(LMMS_HAVE_ALSA TRUE)
281                 SET(STATUS_ALSA "OK")
282         ELSE(ALSA_FOUND)
283                 SET(STATUS_ALSA "not found, please install libasound2-dev (or similiar) "
284                         "if you require ALSA support")
285         ENDIF(ALSA_FOUND)
286 ENDIF(WANT_ALSA)
287 IF(NOT LMMS_HAVE_ALSA)
288         SET(ASOUND_LIBRARY "")
289 ENDIF(NOT LMMS_HAVE_ALSA)
291 # check for pthreads
292 IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE)
293         FIND_PACKAGE(Threads)
294 ENDIF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE)
296 # check for JACK
297 IF(WANT_JACK)
298         PKG_CHECK_MODULES(JACK jack>=0.77)
299         IF(JACK_FOUND)
300                 SET(LMMS_HAVE_JACK TRUE)
301                 SET(STATUS_JACK "OK")
302         ELSE(JACK_FOUND)
303                 SET(STATUS_JACK "not found, please install libjack0.100.0-dev (or similiar) "
304                         "if you require JACK support")
305         ENDIF(JACK_FOUND)
306 ENDIF(WANT_JACK)
309 # check for FFTW3F-library
310 IF(WANT_FFTW3F)
311         PKG_CHECK_MODULES(FFTW3F fftw3f>=3.0.0)
312         IF(FFTW3F_FOUND)
313                 SET(LMMS_HAVE_FFTW3F TRUE)
314                 SET(STATUS_FFTW3F "OK")
315         ELSE(FFTW3F_FOUND)
316                 SET(STATUS_FFTW3F "not found, libfftw3-dev (or similiar) "
317                         "is highly recommended")
318         ENDIF(FFTW3F_FOUND)
319 ENDIF(WANT_FFTW3F)
322 # check for Fluidsynth
323 IF(WANT_SF2)
324         PKG_CHECK_MODULES(FLUIDSYNTH fluidsynth>=1.0.7)
325         IF(FLUIDSYNTH_FOUND)
326                 SET(LMMS_HAVE_FLUIDSYNTH TRUE)
327                 SET(STATUS_FLUIDSYNTH "OK")
328         ELSE(FLUIDSYNTH_FOUND)
329                 SET(STATUS_FLUIDSYNTH "not found, libfluidsynth-dev (or similiar)"
330                         "is highly recommended")
331         ENDIF(FLUIDSYNTH_FOUND)
332 ENDIF(WANT_SF2)
334 # check for LV2 (this has an implicit dependency on RDF as far as I can tell)
335 IF(WANT_LV2)
336         CHECK_INCLUDE_FILES(lv2.h LMMS_HAVE_LV2CORE)
337         # compatibility for slv2 <= 0.6.2
338         CHECK_INCLUDE_FILES(slv2/scalepoints.h LMMS_HAVE_SLV2_SCALEPOINTS_H)
340         CHECK_LIBRARY_EXISTS(slv2 slv2_world_new "" LMMS_HAVE_SLV2)
342 # MESSAGE("SLV2 Exists    : '${LMMS_HAVE_SLV2}'")
343 # MESSAGE("SLV2 Library   : '${SLV2_LIBRARY}'")   #RIGHT
344 # MESSAGE("SLV2 Libraries : '${SLV2_LIBRARIES}'") # WRONG
346         CHECK_LIBRARY_EXISTS(rdf librdf_new_world "" LMMS_HAVE_RDF)
348 ###  TODO : mdda : Install requires :
349 # Fedora CCRMA : Want "lv2core"
350 # Fedora CCRMA : Want "slv2"
352         SET(STATUS_LV2 "OK")
354         IF(NOT LMMS_HAVE_LV2CORE)
355                 SET(STATUS_LV2 "LV2 devel packages not found : need lv2core(-devel)")
356         ENDIF(NOT LMMS_HAVE_LV2CORE)
358         IF(NOT LMMS_HAVE_SLV2)
359                 SET(STATUS_LV2 "LV2 (Host) devel packages not found : need libslv2-dev, slv2-devel or similiar")
360         ENDIF(NOT LMMS_HAVE_SLV2)
362         IF(NOT LMMS_HAVE_RDF)
363                 SET(STATUS_LV2 "LV2 (RDF) devel packages not found : need librdf0-dev, redland-devel or similiar")
364         ENDIF(NOT LMMS_HAVE_RDF)
366         IF("${STATUS_LV2}" STREQUAL "OK")
367                 FIND_LIBRARY(SLV2_LIBRARY NAMES slv2 PATH /usr/lib /usr/local/lib)
368                 FIND_LIBRARY(RDF_LIBRARY NAMES rdf PATH /usr/lib /usr/local/lib)
369                 SET(LMMS_SUPPORT_LV2 TRUE)
370                 SET(LMMS_HAVE_LV2 TRUE)
371          ENDIF("${STATUS_LV2}" STREQUAL "OK")
372 ENDIF(WANT_LV2)
375 # check for WINE
376 IF(WANT_VST)
377         INCLUDE(CheckIncludeFileCXX)
378         SET(CMAKE_REQUIRED_FLAGS_ORIG ${CMAKE_REQUIRED_FLAGS})
379         SET(CMAKE_REQUIRED_INCLUDES_ORIG ${CMAKE_REQUIRED_INCLUDES})
380         SET(CMAKE_CXX_COMPILER_ORIG ${CMAKE_CXX_COMPILER})
381         IF(LMMS_HOST_X86_64)
382                 SET(CMAKE_REQUIRED_FLAGS -m32 ${CMAKE_REQUIRED_FLAGS})
383         ENDIF(LMMS_HOST_X86_64)
384         CHECK_LIBRARY_EXISTS(wine wine_init "" HAVE_LIBWINE)
385         SET(CMAKE_CXX_COMPILER /usr/bin/wineg++)
386         SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${CMAKE_INSTALL_PREFIX}/include/wine/windows /usr/include/wine/windows)
387         CHECK_INCLUDE_FILE_CXX(windows.h HAVE_WINDOWS_H)
388         SET(CMAKE_CXX_COMPILER ${CMAKE_CXX_COMPILER_ORIG})
389         SET(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_ORIG})
390         SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES_ORIG})
391         IF(HAVE_LIBWINE AND HAVE_WINDOWS_H)
392                 SET(LMMS_SUPPORT_VST TRUE)
393                 SET(STATUS_VST "OK")
394         ELSE(HAVE_LIBWINE AND HAVE_WINDOWS_H)
395                 SET(STATUS_VST "not found, please install (lib)wine-dev (or similiar) - 64 bit systems additionally need gcc-multilib and g++-multilib")
396         ENDIF(HAVE_LIBWINE AND HAVE_WINDOWS_H)
397 ENDIF(WANT_VST)
398 IF(LMMS_BUILD_WIN32)
399         SET(LMMS_SUPPORT_VST TRUE)
400         SET(STATUS_VST "OK")
401 ENDIF(LMMS_BUILD_WIN32)
404 # check for libsamplerate
405 IF(WANT_SYSTEM_SR)
406         PKG_CHECK_MODULES(SAMPLERATE samplerate>=0.1.7)
407         IF(SAMPLERATE_FOUND)
408                 SET(LMMS_HAVE_SAMPLERATE TRUE)
409         ENDIF(SAMPLERATE_FOUND)
410 ENDIF(WANT_SYSTEM_SR)
411 IF(NOT LMMS_HAVE_SAMPLERATE)
412         INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/3rdparty/samplerate)
413         SET(CMAKE_CROSSCOMPILING_ORIG "${CMAKE_CROSSCOMPILING}")
414         SET(CMAKE_CROSSCOMPILING "")
415         INCLUDE(ChecksForLibSamplerate)
416         SET(LIBSAMPLERATE_SOURCES 
417                 ${CMAKE_SOURCE_DIR}/src/3rdparty/samplerate/samplerate.c
418                 ${CMAKE_SOURCE_DIR}/src/3rdparty/samplerate/samplerate.h
419                 ${CMAKE_SOURCE_DIR}/src/3rdparty/samplerate/src_sinc.c
420                 ${CMAKE_SOURCE_DIR}/src/3rdparty/samplerate/high_qual_coeffs.h
421                 ${CMAKE_SOURCE_DIR}/src/3rdparty/samplerate/mid_qual_coeffs.h
422                 ${CMAKE_SOURCE_DIR}/src/3rdparty/samplerate/fastest_coeffs.h
423                 ${CMAKE_SOURCE_DIR}/src/3rdparty/samplerate/common.h
424                 ${CMAKE_SOURCE_DIR}/src/3rdparty/samplerate/src_config.h
425                 ${CMAKE_SOURCE_DIR}/src/3rdparty/samplerate/float_cast.h
426                 ${CMAKE_SOURCE_DIR}/src/3rdparty/samplerate/src_zoh.c
427                 ${CMAKE_SOURCE_DIR}/src/3rdparty/samplerate/src_linear.c)
428         SET(CMAKE_CROSSCOMPILING "${CMAKE_CROSSCOMPILING_ORIG}")
429 ENDIF(NOT LMMS_HAVE_SAMPLERATE)
432 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/lmmsconfig.h.in ${CMAKE_BINARY_DIR}/lmmsconfig.h)
433 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/lmmsversion.h.in ${CMAKE_BINARY_DIR}/lmmsversion.h)
434 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/lmms.rc.in ${CMAKE_BINARY_DIR}/lmms.rc)
435 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/plugins/zynaddsubfx/zynaddsubfx.rc.in ${CMAKE_BINARY_DIR}/plugins/zynaddsubfx/zynaddsubfx.rc)
437 # set compiler flags
438 #SET(CMAKE_BUILD_TYPE relwithdebug)
439 SET(CMAKE_C_FLAGS "-O2 -g -Wall ${CMAKE_C_FLAGS}")
440 SET(CMAKE_CXX_FLAGS "-O2 -g -fno-exceptions -Wall ${CMAKE_CXX_FLAGS}")
441 #SET(CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_C_FLAGS}")
442 #SET(CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_CXX_FLAGS}")
445 FILE(GLOB_RECURSE lmms_INCLUDES ${CMAKE_SOURCE_DIR}/include/*.h)
446 FILE(GLOB lmms_UI ${CMAKE_SOURCE_DIR}/src/gui/Forms/*.ui)
447 FILE(GLOB_RECURSE lmms_SOURCES ${CMAKE_SOURCE_DIR}/src/*.cpp)
449 SET(lmms_MOC ${lmms_INCLUDES})
451 SET(lmms_EMBEDDED_RESOURCES ${CMAKE_SOURCE_DIR}/AUTHORS ${CMAKE_SOURCE_DIR}/COPYING)
453 QT4_WRAP_CPP(lmms_MOC_out ${lmms_MOC} OPTIONS -nw)
454 QT4_WRAP_UI(lmms_UI_out ${lmms_UI})
457 # embedded resources stuff
458 IF(WIN32 OR WIN64)
459         # compile buildtools native
460         SET(BIN2RES_CPP ${CMAKE_SOURCE_DIR}/buildtools/bin2res.cpp)
461         SET(BIN2RES ${CMAKE_BINARY_DIR}/bin2res)
462         ADD_CUSTOM_COMMAND(OUTPUT ${BIN2RES} COMMAND g++ ARGS ${BIN2RES_CPP} -o ${BIN2RES} DEPENDS ${BIN2RES_CPP})
463 ELSE(WIN32 OR WIN64)
464         ADD_EXECUTABLE(bin2res buildtools/bin2res.cpp)
465         GET_TARGET_PROPERTY(BIN2RES bin2res LOCATION)
466 ENDIF(WIN32 OR WIN64)
468 SET(LMMS_ER_H ${CMAKE_CURRENT_BINARY_DIR}/embedded_resources.h)
470 # we somehow have to make LMMS-binary depend on MOC-files
471 ADD_FILE_DEPENDENCIES(${CMAKE_BINARY_DIR}/lmmsconfig.h ${lmms_MOC_out})
473 ADD_CUSTOM_COMMAND(OUTPUT ${LMMS_ER_H} COMMAND ${BIN2RES} ARGS ${lmms_EMBEDDED_RESOURCES} > ${LMMS_ER_H} DEPENDS ${BIN2RES})
475 # build CPU specific optimized modules
476 IF(LMMS_HOST_X86 OR LMMS_HOST_X86_64)
478         IF(LMMS_HOST_X86)
479                 SET(opt_targets mmx sse sse2)
480         ELSE(LMMS_HOST_X86)
481                 SET(opt_targets sse sse2)
482         ENDIF(LMMS_HOST_X86)
484 FOREACH(opt_target ${opt_targets})
486         STRING(TOUPPER ${opt_target} OPT_TARGET)
488         SET(BASIC_OPS_X86_TARGET_S "")
489         SET(CPU_X86_C "${CMAKE_SOURCE_DIR}/src/core/CpuX86.c")
490         SET(CPU_X86_TARGET_O "${CMAKE_BINARY_DIR}/CpuX86_${opt_target}.o")
491         SET(FPMATH_FLAGS "")
492         IF(NOT "${OPT_TARGET}" STREQUAL "MMX")
493                 SET(FPMATH_FLAGS "-mfpmath=sse")
494         ENDIF(NOT "${OPT_TARGET}" STREQUAL "MMX")
495         IF("${CMAKE_C_COMPILER_ARG1}" STREQUAL " gcc")
496                 SET(CMAKE_C_COMPILER_ARG1 gcc)
497         ENDIF("${CMAKE_C_COMPILER_ARG1}" STREQUAL " gcc")
498         SET(CFLAGS ${CMAKE_C_FLAGS})
499         SEPARATE_ARGUMENTS(CFLAGS)
500         SET(COMPILE_CMD ${CMAKE_C_COMPILER} ${CPU_X86_C} ${CFLAGS} -O2 -fno-stack-protector -ftree-vectorize -fomit-frame-pointer -c -I${CMAKE_SOURCE_DIR}/include -I${CMAKE_BINARY_DIR} -g0 -DBUILD_${OPT_TARGET} -m${opt_target} ${FPMATH_FLAGS})
501         ADD_CUSTOM_COMMAND(OUTPUT ${CPU_X86_TARGET_O} COMMAND ${COMPILE_CMD} -o ${CPU_X86_TARGET_O} DEPENDS ${CPU_X86_C})
502         ADD_CUSTOM_TARGET(debug-${opt_target} COMMAND ${COMPILE_CMD} -o ${CPU_X86_TARGET_O}.s -S -ftree-vectorizer-verbose=2)
503         SET(cpu_objects ${cpu_objects} ${CPU_X86_TARGET_O})
505 ENDFOREACH(opt_target ${opt_targets})
507 ENDIF(LMMS_HOST_X86 OR LMMS_HOST_X86_64)
510 IF(WIN32)
511         SET(WINRC "${CMAKE_BINARY_DIR}/lmmsrc.obj")
512         ADD_CUSTOM_COMMAND(OUTPUT ${WINRC}
513                                 COMMAND ${WINDRES}
514                                         -I${CMAKE_SOURCE_DIR}
515                                         -o${CMAKE_BINARY_DIR}/lmmsrc.obj
516                                         -i${CMAKE_BINARY_DIR}/lmms.rc
517                                 DEPENDS ${CMAKE_BINARY_DIR}/lmms.rc)
518         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes")
519 ELSE(WIN32)
520         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -DPIC")
521 ENDIF(WIN32)
525 # make sub-directories
526 ADD_SUBDIRECTORY(plugins)
527 ADD_SUBDIRECTORY(data)
531 # build LMMS-binary
533 IF(LMMS_BUILD_WIN32)
534         SET(EXTRA_LIBRARIES "-lwinmm")
535 ENDIF()
537 ADD_DEFINITIONS(-D'LIB_DIR="${CMAKE_INSTALL_PREFIX}/${LIB_DIR}/"' -D'PLUGIN_DIR="${CMAKE_INSTALL_PREFIX}/${LIB_DIR}/lmms/"' ${PULSEAUDIO_DEFINITIONS} ${PORTAUDIO_DEFINITIONS})
539 INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/include ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/include ${SDL_INCLUDE_DIR} ${PORTAUDIO_INCLUDE_DIR} ${PULSEAUDIO_INCLUDE_DIR} ${JACK_INCLUDE_DIRS} ${OGGVORBIS_INCLUDE_DIR} ${SAMPLERATE_INCLUDE_DIRS} ${SNDFILE_INCLUDE_DIRS} ${FLAC_INCLUDE_DIR})
540 LINK_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/lib ${ASOUND_LIBRARY_DIR} ${JACK_LIBRARY_DIRS} ${SAMPLERATE_LIBRARY_DIRS} ${SNDFILE_LIBRARY_DIRS})
541 LINK_LIBRARIES(${CMAKE_THREAD_LIBS_INIT} ${QT_LIBRARIES} ${ASOUND_LIBRARY} ${SDL_LIBRARY} ${PORTAUDIO_LIBRARIES} ${PULSEAUDIO_LIBRARIES} ${JACK_LIBRARIES} ${OGGVORBIS_LIBRARIES} ${SAMPLERATE_LIBRARIES} ${SNDFILE_LIBRARIES} ${FLAC_LIBRARIES} ${SLV2_LIBRARY} ${EXTRA_LIBRARIES})
543 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_BINARY_DIR}/lmms.1.gz COMMAND gzip -c ${CMAKE_SOURCE_DIR}/lmms.1 > ${CMAKE_BINARY_DIR}/lmms.1.gz DEPENDS ${CMAKE_SOURCE_DIR}/lmms.1 COMMENT "Generating lmms.1.gz")
545 ADD_EXECUTABLE(lmms ${lmms_SOURCES} ${cpu_objects} ${lmms_INCLUDES} ${LIBSAMPLERATE_SOURCES} ${LMMS_ER_H} ${lmms_UI_out} lmmsconfig.h lmmsversion.h ${WINRC} ${CMAKE_BINARY_DIR}/lmms.1.gz)
547 IF(LMMS_BUILD_WIN32)
549         SET_TARGET_PROPERTIES(lmms PROPERTIES LINK_FLAGS "${LINK_FLAGS} -mwindows")
550         ADD_CUSTOM_COMMAND(TARGET lmms POST_BUILD COMMAND ${STRIP} ${CMAKE_BINARY_DIR}/lmms.exe)
552         INSTALL(TARGETS lmms RUNTIME DESTINATION .)
553         INSTALL(FILES
554                                         ${MINGW_PREFIX}/bin/QtCore4.dll
555                                         ${MINGW_PREFIX}/bin/QtGui4.dll
556                                         ${MINGW_PREFIX}/bin/QtXml4.dll
557                                         ${MINGW_PREFIX}/bin/QtNetwork4.dll
558                                         ${MINGW_PREFIX}/bin/libsndfile-1.dll
559                                         ${MINGW_PREFIX}/bin/libvorbis-0.dll
560                                         ${MINGW_PREFIX}/bin/libvorbisenc-2.dll
561                                         ${MINGW_PREFIX}/bin/libvorbisfile-3.dll
562                                         ${MINGW_PREFIX}/bin/libogg-0.dll
563                                         ${MINGW_PREFIX}/bin/libfluidsynth-1.dll
564                                         ${MINGW_PREFIX}/bin/libfftw3f-3.dll
565                                         ${MINGW_PREFIX}/bin/libFLAC-8.dll
566                                         ${MINGW_PREFIX}/bin/libportaudio-2.dll
567                                         ${MINGW_PREFIX}/bin/SDL.dll
568                                         ${MINGW_PREFIX}/bin/libglib-2.0-0.dll
569                                         ${MINGW_PREFIX}/bin/libgthread-2.0-0.dll
570                                 DESTINATION .)
572 ELSE(LMMS_BUILD_WIN32)
573         IF(NOT LMMS_BUILD_APPLE)
574                 SET_TARGET_PROPERTIES(lmms PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Wl,-E")
575         ENDIF(NOT LMMS_BUILD_APPLE)
577         INSTALL(TARGETS lmms RUNTIME DESTINATION bin)
578         INSTALL(FILES ${CMAKE_BINARY_DIR}/lmms.1.gz DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1/ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)
580 ENDIF(LMMS_BUILD_WIN32)
583 # rules for building localizations
585 FILE(GLOB lmms_LOCALES data/locale/*.ts)
586 SET(ts_targets "")
587 SET(qm_targets "")
588 FOREACH(_ts_file ${lmms_LOCALES})
589         STRING(REPLACE "${CMAKE_SOURCE_DIR}/data/locale/" "" _ts_target "${_ts_file}")
590         STRING(REPLACE ".ts" ".qm" _qm_file "${_ts_file}")
591         STRING(REPLACE ".ts" ".qm" _qm_target "${_ts_target}")
592         ADD_CUSTOM_TARGET(${_ts_target} COMMAND ${QT_LUPDATE_EXECUTABLE} -locations none -no-obsolete ${lmms_SOURCES} ${lmms_UI} `find ${CMAKE_SOURCE_DIR}/plugins/ -type f -name '*.cpp'` -ts ${_ts_file})
593         ADD_CUSTOM_TARGET(${_qm_target} COMMAND ${QT_LRELEASE_EXECUTABLE} ${_ts_file} -qm ${_qm_file})
594         LIST(APPEND ts_targets "${_ts_target}")
595         LIST(APPEND qm_targets "${_qm_target}")
596 ENDFOREACH(_ts_file ${lmms_LOCALES})
598 ADD_CUSTOM_TARGET(update-locales)
599 FOREACH(_item ${ts_targets})
600         ADD_DEPENDENCIES(update-locales ${_item})
601 ENDFOREACH(_item ${ts_targets})
603 ADD_CUSTOM_TARGET(finalize-locales)
604 FOREACH(_item ${qm_targets})
605         ADD_DEPENDENCIES(finalize-locales ${_item})
606 ENDFOREACH(_item ${qm_targets})
609 # install headers
611 IF(LMMS_BUILD_LINUX)
612 INSTALL(FILES ${lmms_INCLUDES} ${CMAKE_BINARY_DIR}/lmmsconfig.h ${CMAKE_BINARY_DIR}/lmmsversion.h ${CMAKE_SOURCE_DIR}/src/gui/embed.cpp DESTINATION ${CMAKE_INSTALL_PREFIX}/include/lmms/)
613 IF(NOT LMMS_HAVE_SAMPLERATE)
614 INSTALL(FILES ${CMAKE_SOURCE_DIR}/src/3rdparty/samplerate/samplerate.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/lmms/)
615 ENDIF(NOT LMMS_HAVE_SAMPLERATE)
616 ENDIF(LMMS_BUILD_LINUX)
618 # package ZynAddSubFX into win32 build
619 IF(LMMS_BUILD_WIN32)
620 IF(EXISTS ${CMAKE_SOURCE_DIR}/extras)
621 ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/extras/data/presets)
622 FILE(GLOB ZASF_BINARIES ${CMAKE_SOURCE_DIR}/extras/plugins/zynaddsubfx/zynaddsubfx.dll ${CMAKE_SOURCE_DIR}/extras/plugins/zynaddsubfx/remote_zynaddsubfx.exe)
623 INSTALL(FILES ${ZASF_BINARIES} DESTINATION ${PLUGIN_DIR})
624 ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/extras)
625 ENDIF(LMMS_BUILD_WIN32)
628 # add distclean-target
630 ADD_CUSTOM_TARGET(distclean
631                         COMMAND make clean
632                         COMMAND rm -rf `find -name cmake_install.cmake` `find -name Makefile` `find -type d -name CMakeFiles` CMakeCache.txt lmmsconfig.h lmms.1.gz)
635 # add tarball-target
637 SET(TMP "lmms-${VERSION}")
638 ADD_CUSTOM_TARGET(dist
639                         COMMAND make clean
640                         COMMAND rm -rf ${TMP}
641                         COMMAND mkdir -p ${TMP}
642                         COMMAND cp AUTHORS build_mingw32 CMakeLists.txt configure COPYING INSTALL lmms.1 lmms.rc.in lmms.spec.in lmmsconfig.h.in README TODO ${TMP}
643                         COMMAND cp -r buildtools cmake data include plugins src ${TMP}
644                         COMMAND rm -rf `find ${TMP} -type d -name ".svn"`  `find ${TMP} -name cmake_install.cmake` `find ${TMP} -name Makefile` `find ${TMP} -type d -name CMakeFiles` ${TMP}/CMakeCache.txt
645                         COMMAND tar cjf lmms-${VERSION}.tar.bz2 ${TMP}
646                         COMMAND rm -rf ${TMP})
649 # add win32-pkg-target (deprecated - use "package" target instead)
651 ADD_CUSTOM_TARGET(win32-pkg
652                         COMMAND mkdir -p tmp/lmms/data
653                         COMMAND mkdir -p tmp/lmms/plugins/ladspa/
654                         COMMAND cp lmms.exe tmp/lmms
655                         COMMAND find plugins/ -maxdepth 2 -name '*.dll'  -exec cp '{}' tmp/lmms/plugins/ "';'"
656                         COMMAND rm tmp/lmms/plugins/caps.dll
657                         COMMAND rm tmp/lmms/plugins/tap*.dll
658                         COMMAND cp plugins/ladspa_effect/caps/caps.dll tmp/lmms/plugins/ladspa/
659                         COMMAND cp plugins/ladspa_effect/tap/tap*.dll tmp/lmms/plugins/ladspa/
660                         COMMAND cd data && make DESTDIR=${CMAKE_BINARY_DIR}/tmp/lmms/ install
661                         COMMAND mv tmp/lmms/opt/mingw32/share/lmms/* tmp/lmms/data/ && rm -rf tmp/lmms/opt
662                         COMMAND cp /opt/mingw32/bin/QtCore4.dll tmp/lmms
663                         COMMAND cp /opt/mingw32/bin/QtGui4.dll tmp/lmms
664                         COMMAND cp /opt/mingw32/bin/QtXml4.dll tmp/lmms
665                         COMMAND cp /opt/mingw32/bin/QtNetwork4.dll tmp/lmms
666                         COMMAND cp /opt/mingw32/bin/libz.dll tmp/lmms
667                         COMMAND cp /opt/mingw32/bin/libsndfile-1.dll tmp/lmms
668                         COMMAND cp /opt/mingw32/bin/libvorbis*.dll tmp/lmms
669                         COMMAND cp /opt/mingw32/bin/libogg-0.dll tmp/lmms
670                         COMMAND cp /opt/mingw32/bin/libfluidsynth-1.dll tmp/lmms
671                         COMMAND cp /opt/mingw32/bin/libfftw3f-3.dll tmp/lmms
672                         COMMAND cp /opt/mingw32/bin/SDL.dll tmp/lmms
673                         COMMAND cp /opt/mingw32/i586-pc-mingw32/bin/mingwm10.dll tmp/lmms
674                         COMMAND cp -L ${CMAKE_SOURCE_DIR}/COPYING tmp/lmms/LICENSE.TXT
675                         COMMAND cp -L ${CMAKE_SOURCE_DIR}/README tmp/lmms/README.TXT
676                         COMMAND ${STRIP} tmp/lmms/lmms.exe tmp/lmms/plugins/*.dll tmp/lmms/plugins/ladspa/*.dll
677                         COMMAND mv tmp/lmms tmp/lmms-${VERSION}
678                         COMMAND cd tmp && zip -r -9 ../lmms-${VERSION}-bin-win32.zip lmms-${VERSION}/*
679                         COMMAND rm -rf tmp
683 SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LMMS_ER_H} ${lmms_MOC_out} ${lmms_UI_out} lmmsconfig.h lmms.1.gz")
687 # display configuration information
690 MESSAGE("\n"
691 "Installation Summary\n"
692 "--------------------\n"
693 "* Install Directory           : ${CMAKE_INSTALL_PREFIX}\n"
694 #"* Build type                  : ${CMAKE_BUILD_TYPE}\n"
695 "* Use system's libsamplerate  : ${LMMS_HAVE_SAMPLERATE}\n"
698 MESSAGE(
699 "Supported audio interfaces\n"
700 "--------------------------\n"
701 "* ALSA                        : ${STATUS_ALSA}\n"
702 "* JACK                        : ${STATUS_JACK}\n"
703 "* OSS                         : ${STATUS_OSS}\n"
704 "* PortAudio                   : ${STATUS_PORTAUDIO}\n"
705 "* PulseAudio                  : ${STATUS_PULSEAUDIO}\n"
706 "* SDL                         : ${STATUS_SDL}\n"
709 MESSAGE(
710 "Supported MIDI interfaces\n"
711 "-------------------------\n"
712 "* ALSA                        : ${STATUS_ALSA}\n"
713 "* OSS                         : ${STATUS_OSS}\n"
714 "* WinMM                       : ${STATUS_WINMM}\n"
717 MESSAGE(
718 "Supported file formats for project export\n"
719 "-----------------------------------------\n"
720 "* WAVE                        : OK\n"
721 "* OGG/VORBIS                  : ${STATUS_OGGVORBIS}\n"
722 "* FLAC                        : ${STATUS_FLAC}\n"
725 MESSAGE(
726 "Optional plugins\n"
727 "----------------\n"
728 "* SoundFont2 player           : ${STATUS_FLUIDSYNTH}\n"
729 "* Stk Mallets                 : ${STATUS_STK}\n"
730 "* VST-instrument hoster       : ${STATUS_VST}\n"
731 "* VST-effect hoster           : ${STATUS_VST}\n"
732 "* LV2 hoster                  : ${STATUS_LV2}\n"
733 "* SpectrumAnalyzer            : ${STATUS_FFTW3F}\n"
734 "* CALF LADSPA plugins         : ${STATUS_CALF}\n"
735 "* CAPS LADSPA plugins         : ${STATUS_CAPS}\n"
736 "* CMT LADSPA plugins          : ${STATUS_CMT}\n"
737 "* TAP LADSPA plugins          : ${STATUS_TAP}\n"
738 "* SWH LADSPA plugins          : ${STATUS_SWH}\n"
739 "* FL .zip import              : ${STATUS_ZIP}\n"
740 "* ZynAddSubFX                 : ${STATUS_FFTW3F}\n"
743 MESSAGE(
744 "\n"
745 "-----------------------------------------------------------------\n"
746 "IMPORTANT:\n"
747 "after installing missing packages, remove CMakeCache.txt before\n"
748 "running cmake again!\n"
749 "-----------------------------------------------------------------\n"
750 "\n\n")
752 INCLUDE(InstallRequiredSystemLibraries)
753 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Linux MultiMedia Studio - easy music production for everyone!")
754 SET(CPACK_PACKAGE_VENDOR "LMMS Developers")
755 IF(LMMS_BUILD_APPLE)
756 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/README ${CMAKE_BINARY_DIR}/README.txt COPYONLY)
757 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/COPYING ${CMAKE_BINARY_DIR}/COPYING.txt COPYONLY)
758 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_BINARY_DIR}/README.txt")
759 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_BINARY_DIR}/COPYING.txt")
760 ELSE(LMMS_BUILD_APPLE)
761 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README")
762 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
763 ENDIF(LMMS_BUILD_APPLE)
765 SET(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
766 SET(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
767 SET(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}")
768 IF(VERSION_SUFFIX)
769         SET(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}-${VERSION_SUFFIX}")
770 ENDIF(VERSION_SUFFIX)
771 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "LMMS")
772 IF(WIN32)
773 SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/data/nsis_branding.bmp")
774 SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/data/lmms.ico")
775 SET(CPACK_NSIS_INSTALLED_ICON_NAME "lmms.exe")
776 SET(CPACK_NSIS_DISPLAY_NAME "Linux MultiMedia Studio (LMMS)")
777 SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\lmms.sourceforge.net")
778 SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\lmms.sourceforge.net")
779 SET(CPACK_NSIS_CONTACT "lmms-devel@lists.sourceforge.net")
780 SET(CPACK_PACKAGE_EXECUTABLES "lmms.exe;Linux MultiMedia Studio")
781 SET(CPACK_NSIS_MENU_LINKS "lmms.exe;Linux MultiMedia Studio")
782 SET(CPACK_NSIS_DEFINES "!include ${CMAKE_SOURCE_DIR}/cmake/nsis/FileAssociation.nsh")
783 SET(CPACK_PACKAGE_FILE_NAME "lmms-${VERSION}-win32")
784 SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
785   \\\${registerExtension} \\\"$INSTDIR\\\\lmms.exe\\\" \\\".mmp\\\" \\\"LMMS Project\\\"
786   \\\${registerExtension} \\\"$INSTDIR\\\\lmms.exe\\\" \\\".mmpz\\\" \\\"LMMS Project (compressed)\\\"
787   ")
788 SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
789   \\\${unregisterExtension} \\\".mmp\\\" \\\"LMMS Project\\\"
790   \\\${unregisterExtension} \\\".mmpz\\\" \\\"LMMS Project (compressed)\\\"
791   ")
792 ELSE(WIN32)
793 SET(CPACK_STRIP_FILES "bin/lmms;${PLUGIN_DIR}/*.so")
794 SET(CPACK_PACKAGE_EXECUTABLES "lmms" "LMMS binary")
795 ENDIF(WIN32)
797 IF(WIN64)
798         SET(CPACK_PACKAGE_FILE_NAME "lmms-${VERSION}-win64")
799         SET(CPACK_NSIS_DEFINES "${CPACK_NSIS_DEFINES}
800                 InstallDir \\\"\\\$PROGRAMFILES64\\\\${CPACK_PACKAGE_INSTALL_DIRECTORY}\\\"")
801 ENDIF(WIN64)
803 SET(MACOSX_BUNDLE_ICON_FILE "${CMAKE_SOURCE_DIR}/data/themes/default/icon.png")
804 SET(MACOSX_BUNDLE_GUI_IDENTIFIER "LMMS")
805 SET(MACOSX_BUNDLE_LONG_VERSION_STRING "${VERSION}")
806 SET(MACOSX_BUNDLE_BUNDLE_NAME "Linux MultiMedia Studio")
807 SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "${VERSION}")
808 SET(MACOSX_BUNDLE_BUNDLE_VERSION "${VERSION}")
809 SET(MACOSX_BUNDLE_COPYRIGHT "Tobias Doerffel, 2008-2010")
811 SET(CPACK_SOURCE_GENERATOR "TBZ2")
812 SET(CPACK_SOURCE_PACKAGE_FILE_NAME "lmms-${VERSION}")
813 INCLUDE(CPack)