Merge pull request #1596 from LMMS/cmake

CMake use explicit source file specifying
This commit is contained in:
Lukas W
2015-01-11 23:58:15 +01:00
6 changed files with 396 additions and 174 deletions

View File

@@ -1,4 +1,4 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.5)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7)
PROJECT(lmms)
@@ -116,17 +116,16 @@ ELSE()
SET(QT_MIN_VERSION "4.6.0" COMPONENTS QtCore QtGui QtXml)
FIND_PACKAGE(Qt4 REQUIRED)
SET(QT_USE_QTXML 1)
EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_TRANSLATIONS" OUTPUT_VARIABLE QT_TRANSLATIONS_DIR)
IF(WIN32)
SET(QT_TRANSLATIONS_DIR "${MINGW_PREFIX}/share/qt4/translations/")
ENDIF(WIN32)
IF(EXISTS "${QT_TRANSLATIONS_DIR}")
MESSAGE("-- Found Qt translations in ${QT_TRANSLATIONS_DIR}")
ADD_DEFINITIONS(-D'QT_TRANSLATIONS_DIR="${QT_TRANSLATIONS_DIR}"')
ENDIF(EXISTS "${QT_TRANSLATIONS_DIR}")
ENDIF()
IF(NOT WIN32)
STRING(REPLACE "-DQT_DLL" "" QT_DEFINITIONS "${QT_DEFINITIONS}")
ENDIF(NOT WIN32)
ENDIF()
INCLUDE("${QT_USE_FILE}")
ENDIF()
@@ -385,11 +384,7 @@ SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DLMMS_DEBUG")
# people simply updating git will still have this and mess up build with it
FILE(REMOVE include/lmmsconfig.h)
FILE(GLOB lmms_INCLUDES "${CMAKE_SOURCE_DIR}/include/*.h")
FILE(GLOB lmms_UI "${CMAKE_SOURCE_DIR}/src/gui/dialogs/*.ui" "${CMAKE_SOURCE_DIR}/src/gui/Forms/*.ui")
FILE(GLOB_RECURSE lmms_SOURCES "${CMAKE_SOURCE_DIR}/src/*.cpp")
SET(lmms_MOC ${lmms_INCLUDES})
FILE(GLOB LMMS_INCLUDES "${CMAKE_SOURCE_DIR}/include/*.h")
# Get list of all committers from git history, ordered by number of commits
FIND_PACKAGE(Git)
@@ -403,47 +398,20 @@ IF(GIT_FOUND)
TIMEOUT 1)
ENDIF(GIT_FOUND)
SET(lmms_EMBEDDED_RESOURCES "${CMAKE_SOURCE_DIR}/AUTHORS" "${CMAKE_SOURCE_DIR}/COPYING" "${CONTRIBUTORS}")
IF(QT5)
QT5_WRAP_CPP(lmms_MOC_out ${lmms_MOC} OPTIONS -nw -I${CMAKE_BINARY_DIR})
QT5_WRAP_UI(lmms_UI_out ${lmms_UI})
ELSE()
QT4_WRAP_CPP(lmms_MOC_out ${lmms_MOC} OPTIONS -nw -I${CMAKE_BINARY_DIR})
QT4_WRAP_UI(lmms_UI_out ${lmms_UI})
ENDIF()
# embedded resources stuff
IF(WIN32 OR WIN64)
# compile buildtools native
SET(BIN2RES_CPP "${CMAKE_SOURCE_DIR}/buildtools/bin2res.cpp")
SET(BIN2RES "${CMAKE_BINARY_DIR}/bin2res")
ADD_CUSTOM_COMMAND(OUTPUT "${BIN2RES}" COMMAND g++ ARGS "\"${BIN2RES_CPP}\"" -o "\"${BIN2RES}\"" DEPENDS "${BIN2RES_CPP}")
ADD_CUSTOM_TARGET(bin2res COMMAND g++ "\"${BIN2RES_CPP}\"" -o "\"${BIN2RES}\"" DEPENDS "${BIN2RES_CPP}")
ELSE(WIN32 OR WIN64)
ADD_EXECUTABLE(bin2res buildtools/bin2res.cpp)
GET_TARGET_PROPERTY(BIN2RES bin2res LOCATION)
ENDIF(WIN32 OR WIN64)
SET(LMMS_ER_H "${CMAKE_CURRENT_BINARY_DIR}/embedded_resources.h")
# we somehow have to make LMMS-binary depend on MOC-files
ADD_FILE_DEPENDENCIES("${CMAKE_BINARY_DIR}/lmmsconfig.h")
ADD_CUSTOM_COMMAND(OUTPUT "${LMMS_ER_H}" COMMAND "${BIN2RES}" ARGS ${lmms_EMBEDDED_RESOURCES} > "\"${LMMS_ER_H}\"" DEPENDS "${BIN2RES}")
IF(WIN32)
SET(WINRC "${CMAKE_BINARY_DIR}/lmmsrc.obj")
ADD_CUSTOM_COMMAND(OUTPUT "${WINRC}"
COMMAND "${WINDRES}"
"-I\"${CMAKE_SOURCE_DIR}\""
"-o\"${CMAKE_BINARY_DIR}/lmmsrc.obj\""
"-i\"${CMAKE_BINARY_DIR}/lmms.rc\""
DEPENDS "${CMAKE_BINARY_DIR}/lmms.rc")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes")
ELSE(WIN32)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -DPIC")
ENDIF(WIN32)
# set up apple vars before traversing into data/scripts
SET(MACOSX_BUNDLE_ICON_FILE "lmms.icns")
SET(MACOSX_BUNDLE_GUI_IDENTIFIER "LMMS")
@@ -457,131 +425,24 @@ SET(MACOSX_BUNDLE_MIMETYPE_ICON "project.icns")
SET(MACOSX_BUNDLE_MIMETYPE_ID "net.sourceforge.lmms")
SET(MACOSX_BUNDLE_PROJECT_URL "http://lmms.io")
IF(WIN32)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes")
ELSE(WIN32)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -DPIC")
ENDIF(WIN32)
# make sub-directories
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(plugins)
ADD_SUBDIRECTORY(data)
ADD_SUBDIRECTORY(doc)
# Enable C++11
ADD_DEFINITIONS("-std=c++0x")
#
# build LMMS-binary
#
IF(LMMS_BUILD_WIN32)
SET(EXTRA_LIBRARIES "-lwinmm")
ENDIF()
# Paths relative to lmms executable
FILE(RELATIVE_PATH LIB_DIR_RELATIVE "/${BIN_DIR}" "/${LIB_DIR}")
FILE(RELATIVE_PATH PLUGIN_DIR_RELATIVE "/${BIN_DIR}" "/${PLUGIN_DIR}")
ADD_DEFINITIONS(-D'LIB_DIR="${LIB_DIR_RELATIVE}/"' -D'PLUGIN_DIR="${PLUGIN_DIR_RELATIVE}/"' ${PULSEAUDIO_DEFINITIONS} ${PORTAUDIO_DEFINITIONS})
INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}"
"${CMAKE_BINARY_DIR}/include"
"${CMAKE_SOURCE_DIR}"
"${CMAKE_SOURCE_DIR}/include"
${JACK_INCLUDE_DIRS}
${SAMPLERATE_INCLUDE_DIRS}
${SNDFILE_INCLUDE_DIRS})
IF(NOT ("${SDL_INCLUDE_DIR}" STREQUAL ""))
INCLUDE_DIRECTORIES("${SDL_INCLUDE_DIR}")
ENDIF()
IF(NOT ("${PORTAUDIO_INCLUDE_DIR}" STREQUAL ""))
INCLUDE_DIRECTORIES("${PORTAUDIO_INCLUDE_DIR}")
ENDIF()
IF(NOT ("${PULSEAUDIO_INCLUDE_DIR}" STREQUAL ""))
INCLUDE_DIRECTORIES("${PULSEAUDIO_INCLUDE_DIR}")
ENDIF()
IF(NOT ("${OGGVORBIS_INCLUDE_DIR}" STREQUAL ""))
INCLUDE_DIRECTORIES("${OGGVORBIS_INCLUDE_DIR}")
ENDIF()
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")
ADD_EXECUTABLE(lmms ${lmms_SOURCES} ${lmms_INCLUDES} ${lmms_MOC_out} "${LMMS_ER_H}" ${lmms_UI_out} lmmsconfig.h lmmsversion.h "${WINRC}" "${CMAKE_BINARY_DIR}/lmms.1.gz")
TARGET_LINK_LIBRARIES(lmms ${CMAKE_THREAD_LIBS_INIT} ${QT_LIBRARIES} ${ASOUND_LIBRARY} ${SDL_LIBRARY} ${PORTAUDIO_LIBRARIES} ${PULSEAUDIO_LIBRARIES} ${JACK_LIBRARIES} ${OGGVORBIS_LIBRARIES} ${SAMPLERATE_LIBRARIES} ${SNDFILE_LIBRARIES} ${EXTRA_LIBRARIES})
IF(QT5)
TARGET_LINK_LIBRARIES(lmms Qt5::Widgets Qt5::Xml)
ENDIF()
IF(LMMS_BUILD_WIN32)
SET_TARGET_PROPERTIES(lmms PROPERTIES LINK_FLAGS "${LINK_FLAGS} -mwindows")
ADD_CUSTOM_COMMAND(TARGET lmms POST_BUILD COMMAND "${STRIP}" "\"${CMAKE_BINARY_DIR}/lmms.exe\"")
INSTALL(TARGETS lmms RUNTIME DESTINATION "${BIN_DIR}")
INSTALL(FILES
"${MINGW_PREFIX}/bin/QtCore4.dll"
"${MINGW_PREFIX}/bin/QtGui4.dll"
"${MINGW_PREFIX}/bin/QtSvg4.dll"
"${MINGW_PREFIX}/bin/QtXml4.dll"
"${MINGW_PREFIX}/bin/libsamplerate-0.dll"
"${MINGW_PREFIX}/bin/libsndfile-1.dll"
"${MINGW_PREFIX}/bin/libvorbis-0.dll"
"${MINGW_PREFIX}/bin/libvorbisenc-2.dll"
"${MINGW_PREFIX}/bin/libvorbisfile-3.dll"
"${MINGW_PREFIX}/bin/libjpeg-9.dll"
"${MINGW_PREFIX}/bin/libogg-0.dll"
"${MINGW_PREFIX}/lib/libfltk.dll"
"${MINGW_PREFIX}/bin/libfluidsynth.dll"
"${MINGW_PREFIX}/bin/libfftw3f-3.dll"
"${MINGW_PREFIX}/bin/libFLAC-8.dll"
"${MINGW_PREFIX}/bin/libportaudio-2.dll"
"${MINGW_PREFIX}/bin/libpng16-16.dll"
"${MINGW_PREFIX}/bin/SDL.dll"
"${MINGW_PREFIX}/bin/libglib-2.0-0.dll"
"${MINGW_PREFIX}/bin/libgthread-2.0-0.dll"
"${MINGW_PREFIX}/bin/zlib1.dll"
"${MINGW_PREFIX}/${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32/bin/libwinpthread-1.dll"
DESTINATION .)
ELSE(LMMS_BUILD_WIN32)
IF(NOT LMMS_BUILD_APPLE)
SET_TARGET_PROPERTIES(lmms PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Wl,-E")
ENDIF(NOT LMMS_BUILD_APPLE)
INSTALL(TARGETS lmms RUNTIME DESTINATION "${BIN_DIR}")
INSTALL(FILES "${CMAKE_BINARY_DIR}/lmms.1.gz" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1/" PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)
ENDIF(LMMS_BUILD_WIN32)
#
# rules for building localizations
#
FILE(GLOB lmms_LOCALES data/locale/*.ts)
SET(ts_targets "")
SET(qm_targets "")
FOREACH(_ts_file ${lmms_LOCALES})
STRING(REPLACE "${CMAKE_SOURCE_DIR}/data/locale/" "" _ts_target "${_ts_file}")
STRING(REPLACE ".ts" ".qm" _qm_file "${_ts_file}")
STRING(REPLACE ".ts" ".qm" _qm_target "${_ts_target}")
ADD_CUSTOM_TARGET(${_ts_target} COMMAND "${QT_LUPDATE_EXECUTABLE}" -locations none -no-obsolete -I ${CMAKE_SOURCE_DIR}/include/ ${lmms_SOURCES} ${lmms_INCLUDES} ${lmms_UI} `find "\"${CMAKE_SOURCE_DIR}/plugins/\"" -type f -name '*.cpp' -or -name '*.h'` -ts "\"${_ts_file}\"")
ADD_CUSTOM_TARGET(${_qm_target} COMMAND "${QT_LRELEASE_EXECUTABLE}" "\"${_ts_file}\"" -qm "\"${_qm_file}\"")
LIST(APPEND ts_targets "${_ts_target}")
LIST(APPEND qm_targets "${_qm_target}")
ENDFOREACH(_ts_file ${lmms_LOCALES})
ADD_CUSTOM_TARGET(update-locales)
FOREACH(_item ${ts_targets})
ADD_DEPENDENCIES(update-locales "${_item}")
ENDFOREACH(_item ${ts_targets})
ADD_CUSTOM_TARGET(finalize-locales ALL)
FOREACH(_item ${qm_targets})
ADD_DEPENDENCIES(finalize-locales "${_item}")
ENDFOREACH(_item ${qm_targets})
# install headers
IF(LMMS_BUILD_LINUX)
INSTALL(FILES ${lmms_INCLUDES}
INSTALL(FILES ${LMMS_INCLUDES}
"${CMAKE_BINARY_DIR}/lmmsconfig.h"
"${CMAKE_BINARY_DIR}/lmmsversion.h"
"${CMAKE_SOURCE_DIR}/src/gui/embed.cpp"
@@ -620,10 +481,6 @@ ADD_CUSTOM_TARGET(dist
COMMAND tar cjf lmms-${VERSION}-src.tar.bz2 "${TMP}"
COMMAND rm -rf "${TMP}")
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LMMS_ER_H} ${lmms_MOC_out} ${lmms_UI_out} lmmsconfig.h lmms.1.gz")
#
# display configuration information
#

View File

@@ -23,28 +23,28 @@ ENDMACRO(LIST_CONTAINS)
MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
SET(DEFAULT_ARGS)
FOREACH(arg_name ${arg_names})
SET(${prefix}_${arg_name})
SET(${prefix}_${arg_name})
ENDFOREACH(arg_name)
FOREACH(option ${option_names})
SET(${prefix}_${option} FALSE)
SET(${prefix}_${option} FALSE)
ENDFOREACH(option)
SET(current_arg_name DEFAULT_ARGS)
SET(current_arg_list)
FOREACH(arg ${ARGN})
LIST_CONTAINS(is_arg_name ${arg} ${arg_names})
IF (is_arg_name)
SET(${prefix}_${current_arg_name} ${current_arg_list})
SET(current_arg_name ${arg})
SET(current_arg_list)
ELSE (is_arg_name)
LIST_CONTAINS(is_option ${arg} ${option_names})
IF (is_option)
LIST_CONTAINS(is_arg_name ${arg} ${arg_names})
IF (is_arg_name)
SET(${prefix}_${current_arg_name} ${current_arg_list})
SET(current_arg_name ${arg})
SET(current_arg_list)
ELSE (is_arg_name)
LIST_CONTAINS(is_option ${arg} ${option_names})
IF (is_option)
SET(${prefix}_${arg} TRUE)
ELSE (is_option)
ELSE (is_option)
SET(current_arg_list ${current_arg_list} ${arg})
ENDIF (is_option)
ENDIF (is_arg_name)
ENDIF (is_option)
ENDIF (is_arg_name)
ENDFOREACH(arg)
SET(${prefix}_${current_arg_name} ${current_arg_list})
ENDMACRO(PARSE_ARGUMENTS)
@@ -64,7 +64,7 @@ MACRO(BUILD_PLUGIN)
ADD_CUSTOM_COMMAND(OUTPUT ${ER_H}
COMMAND ${BIN2RES}
ARGS ${PLUGIN_EMBEDDED_RESOURCES} > ${ER_H}
DEPENDS ${BIN2RES})
DEPENDS bin2res)
ENDIF(ER_LEN)
IF(QT5)
@@ -80,18 +80,21 @@ MACRO(BUILD_PLUGIN)
ENDFOREACH(f)
IF(LMMS_BUILD_APPLE)
LINK_DIRECTORIES(${CMAKE_BINARY_DIR})
LINK_LIBRARIES(${QT_LIBRARIES})
LINK_DIRECTORIES(${CMAKE_BINARY_DIR})
LINK_LIBRARIES(${QT_LIBRARIES})
ENDIF(LMMS_BUILD_APPLE)
IF(LMMS_BUILD_WIN32)
LINK_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR})
LINK_LIBRARIES(-llmms ${QT_LIBRARIES})
LINK_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR})
LINK_LIBRARIES(${QT_LIBRARIES})
ENDIF(LMMS_BUILD_WIN32)
ADD_LIBRARY(${PLUGIN_NAME} MODULE ${PLUGIN_SOURCES} ${plugin_MOC_out})
IF(QT5)
TARGET_LINK_LIBRARIES(${PLUGIN_NAME} Qt5::Widgets Qt5::Xml)
TARGET_LINK_LIBRARIES(${PLUGIN_NAME} Qt5::Widgets Qt5::Xml)
ENDIF()
IF(LMMS_BUILD_WIN32)
TARGET_LINK_LIBRARIES(${PLUGIN_NAME} lmms)
ENDIF(LMMS_BUILD_WIN32)
INSTALL(TARGETS ${PLUGIN_NAME} LIBRARY DESTINATION "${PLUGIN_DIR}")

170
src/CMakeLists.txt Normal file
View File

@@ -0,0 +1,170 @@
SET(LMMS_SRCS "")
SET(LMMS_UIS "")
SET(CMAKE_AUTOMOC ON)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
ADD_SUBDIRECTORY(core)
ADD_SUBDIRECTORY(gui)
ADD_SUBDIRECTORY(tracks)
IF(QT5)
QT5_WRAP_UI(LMMS_UI_OUT ${LMMS_UIS})
ELSE()
QT4_WRAP_UI(LMMS_UI_OUT ${LMMS_UIS})
ENDIF()
INCLUDE_DIRECTORIES(
"${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_BINARY_DIR}"
"${CMAKE_BINARY_DIR}/include"
"${CMAKE_SOURCE_DIR}"
"${CMAKE_SOURCE_DIR}/include"
)
IF(WIN32)
SET(WINRC "${CMAKE_BINARY_DIR}/lmmsrc.obj")
ADD_CUSTOM_COMMAND(OUTPUT "${WINRC}"
COMMAND "${WINDRES}"
"-I\"${CMAKE_SOURCE_DIR}\""
"-o\"${CMAKE_BINARY_DIR}/lmmsrc.obj\""
"-i\"${CMAKE_BINARY_DIR}/lmms.rc\""
DEPENDS "${CMAKE_BINARY_DIR}/lmms.rc")
ENDIF()
SET(lmms_EMBEDDED_RESOURCES "${CMAKE_SOURCE_DIR}/AUTHORS" "${CMAKE_SOURCE_DIR}/COPYING" "${CONTRIBUTORS}")
SET(LMMS_ER_H "${CMAKE_CURRENT_BINARY_DIR}/embedded_resources.h")
ADD_CUSTOM_COMMAND(OUTPUT "${LMMS_ER_H}" COMMAND "${BIN2RES}" ARGS ${lmms_EMBEDDED_RESOURCES} > "\"${LMMS_ER_H}\"" DEPENDS bin2res)
# Paths relative to lmms executable
FILE(RELATIVE_PATH LIB_DIR_RELATIVE "/${BIN_DIR}" "/${LIB_DIR}")
FILE(RELATIVE_PATH PLUGIN_DIR_RELATIVE "/${BIN_DIR}" "/${PLUGIN_DIR}")
ADD_DEFINITIONS(-D'LIB_DIR="${LIB_DIR_RELATIVE}/"' -D'PLUGIN_DIR="${PLUGIN_DIR_RELATIVE}/"' ${PULSEAUDIO_DEFINITIONS} ${PORTAUDIO_DEFINITIONS})
INCLUDE_DIRECTORIES(
${JACK_INCLUDE_DIRS}
${SAMPLERATE_INCLUDE_DIRS}
${SNDFILE_INCLUDE_DIRS}
)
IF(NOT ("${SDL_INCLUDE_DIR}" STREQUAL ""))
INCLUDE_DIRECTORIES("${SDL_INCLUDE_DIR}")
ENDIF()
IF(NOT ("${PORTAUDIO_INCLUDE_DIR}" STREQUAL ""))
INCLUDE_DIRECTORIES("${PORTAUDIO_INCLUDE_DIR}")
ENDIF()
IF(NOT ("${PULSEAUDIO_INCLUDE_DIR}" STREQUAL ""))
INCLUDE_DIRECTORIES("${PULSEAUDIO_INCLUDE_DIR}")
ENDIF()
IF(NOT ("${OGGVORBIS_INCLUDE_DIR}" STREQUAL ""))
INCLUDE_DIRECTORIES("${OGGVORBIS_INCLUDE_DIR}")
ENDIF()
# Enable C++11
ADD_DEFINITIONS("-std=c++0x")
ADD_EXECUTABLE(lmms
${LMMS_SRCS}
${LMMS_INCLUDES}
${LMMS_UI_OUT}
${LMMS_ER_H}
"${WINRC}"
)
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LMMS_ER_H} ${LMMS_UI_OUT} lmmsconfig.h lmms.1.gz")
IF(LMMS_BUILD_WIN32)
SET(EXTRA_LIBRARIES "-lwinmm")
ENDIF()
TARGET_LINK_LIBRARIES(lmms
${CMAKE_THREAD_LIBS_INIT}
${QT_LIBRARIES}
${ASOUND_LIBRARY}
${SDL_LIBRARY}
${PORTAUDIO_LIBRARIES}
${PULSEAUDIO_LIBRARIES}
${JACK_LIBRARIES}
${OGGVORBIS_LIBRARIES}
${SAMPLERATE_LIBRARIES}
${SNDFILE_LIBRARIES}
${EXTRA_LIBRARIES}
)
IF(QT5)
TARGET_LINK_LIBRARIES(lmms
Qt5::Widgets
Qt5::Xml
)
ENDIF()
#
# rules for building localizations
#
FILE(GLOB lmms_LOCALES data/locale/*.ts)
SET(ts_targets "")
SET(qm_targets "")
FOREACH(_ts_file ${lmms_LOCALES})
STRING(REPLACE "${CMAKE_SOURCE_DIR}/data/locale/" "" _ts_target "${_ts_file}")
STRING(REPLACE ".ts" ".qm" _qm_file "${_ts_file}")
STRING(REPLACE ".ts" ".qm" _qm_target "${_ts_target}")
ADD_CUSTOM_TARGET(${_ts_target} COMMAND "${QT_LUPDATE_EXECUTABLE}" -locations none -no-obsolete -I ${CMAKE_SOURCE_DIR}/include/ ${LMMS_SRCS} ${LMMS_INCLUDES} ${LMMS_UIS} `find "\"${CMAKE_SOURCE_DIR}/plugins/\"" -type f -name '*.cpp' -or -name '*.h'` -ts "\"${_ts_file}\"")
ADD_CUSTOM_TARGET(${_qm_target} COMMAND "${QT_LRELEASE_EXECUTABLE}" "\"${_ts_file}\"" -qm "\"${_qm_file}\"")
LIST(APPEND ts_targets "${_ts_target}")
LIST(APPEND qm_targets "${_qm_target}")
ENDFOREACH(_ts_file ${lmms_LOCALES})
ADD_CUSTOM_TARGET(update-locales)
FOREACH(_item ${ts_targets})
ADD_DEPENDENCIES(update-locales "${_item}")
ENDFOREACH(_item ${ts_targets})
ADD_CUSTOM_TARGET(finalize-locales ALL)
FOREACH(_item ${qm_targets})
ADD_DEPENDENCIES(finalize-locales "${_item}")
ENDFOREACH(_item ${qm_targets})
# Install
IF(LMMS_BUILD_WIN32)
SET_TARGET_PROPERTIES(lmms PROPERTIES
LINK_FLAGS "${LINK_FLAGS} -mwindows"
ENABLE_EXPORTS ON)
ADD_CUSTOM_COMMAND(TARGET lmms POST_BUILD COMMAND "${STRIP}" "$<TARGET_FILE:lmms>")
INSTALL(TARGETS lmms RUNTIME DESTINATION "${BIN_DIR}")
INSTALL(FILES
"${MINGW_PREFIX}/bin/QtCore4.dll"
"${MINGW_PREFIX}/bin/QtGui4.dll"
"${MINGW_PREFIX}/bin/QtSvg4.dll"
"${MINGW_PREFIX}/bin/QtXml4.dll"
"${MINGW_PREFIX}/bin/libsamplerate-0.dll"
"${MINGW_PREFIX}/bin/libsndfile-1.dll"
"${MINGW_PREFIX}/bin/libvorbis-0.dll"
"${MINGW_PREFIX}/bin/libvorbisenc-2.dll"
"${MINGW_PREFIX}/bin/libvorbisfile-3.dll"
"${MINGW_PREFIX}/bin/libjpeg-9.dll"
"${MINGW_PREFIX}/bin/libogg-0.dll"
"${MINGW_PREFIX}/lib/libfltk.dll"
"${MINGW_PREFIX}/bin/libfluidsynth.dll"
"${MINGW_PREFIX}/bin/libfftw3f-3.dll"
"${MINGW_PREFIX}/bin/libFLAC-8.dll"
"${MINGW_PREFIX}/bin/libportaudio-2.dll"
"${MINGW_PREFIX}/bin/libpng16-16.dll"
"${MINGW_PREFIX}/bin/SDL.dll"
"${MINGW_PREFIX}/bin/libglib-2.0-0.dll"
"${MINGW_PREFIX}/bin/libgthread-2.0-0.dll"
"${MINGW_PREFIX}/bin/zlib1.dll"
"${MINGW_PREFIX}/${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32/bin/libwinpthread-1.dll"
DESTINATION .)
ELSE(LMMS_BUILD_WIN32)
IF(NOT LMMS_BUILD_APPLE)
SET_TARGET_PROPERTIES(lmms PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Wl,-E")
ENDIF(NOT LMMS_BUILD_APPLE)
INSTALL(TARGETS lmms RUNTIME DESTINATION "${BIN_DIR}")
INSTALL(FILES "${CMAKE_BINARY_DIR}/lmms.1.gz" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1/" PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)
ENDIF(LMMS_BUILD_WIN32)

88
src/core/CMakeLists.txt Normal file
View File

@@ -0,0 +1,88 @@
set(LMMS_SRCS
${LMMS_SRCS}
core/AutomatableModel.cpp
core/AutomationPattern.cpp
core/BandLimitedWave.cpp
core/base64.cpp
core/BBTrackContainer.cpp
core/BufferManager.cpp
core/Clipboard.cpp
core/ComboBoxModel.cpp
core/ConfigManager.cpp
core/Controller.cpp
core/ControllerConnection.cpp
core/DataFile.cpp
core/DrumSynth.cpp
core/Effect.cpp
core/EffectChain.cpp
core/Engine.cpp
core/EnvelopeAndLfoParameters.cpp
core/fft_helpers.cpp
core/FxMixer.cpp
core/ImportFilter.cpp
core/InlineAutomation.cpp
core/Instrument.cpp
core/InstrumentFunctions.cpp
core/InstrumentPlayHandle.cpp
core/InstrumentSoundShaping.cpp
core/JournallingObject.cpp
core/Ladspa2LMMS.cpp
core/LadspaControl.cpp
core/LadspaManager.cpp
core/LfoController.cpp
core/main.cpp
core/MemoryHelper.cpp
core/MemoryManager.cpp
core/MeterModel.cpp
core/Mixer.cpp
core/MixerProfiler.cpp
core/MixerWorkerThread.cpp
core/MixHelpers.cpp
core/Model.cpp
core/Note.cpp
core/NotePlayHandle.cpp
core/Oscillator.cpp
core/PeakController.cpp
core/Piano.cpp
core/PlayHandle.cpp
core/Plugin.cpp
core/PresetPreviewPlayHandle.cpp
core/ProjectJournal.cpp
core/ProjectRenderer.cpp
core/ProjectVersion.cpp
core/RemotePlugin.cpp
core/RingBuffer.cpp
core/SampleBuffer.cpp
core/SamplePlayHandle.cpp
core/SampleRecordHandle.cpp
core/SerializingObject.cpp
core/Song.cpp
core/TempoSyncKnobModel.cpp
core/ToolPlugin.cpp
core/Track.cpp
core/TrackContainer.cpp
core/VstSyncController.cpp
core/audio/AudioAlsa.cpp
core/audio/AudioDevice.cpp
core/audio/AudioFileDevice.cpp
core/audio/AudioFileOgg.cpp
core/audio/AudioFileWave.cpp
core/audio/AudioJack.cpp
core/audio/AudioOss.cpp
core/audio/AudioPort.cpp
core/audio/AudioPortAudio.cpp
core/audio/AudioPulseAudio.cpp
core/audio/AudioSampleRecorder.cpp
core/audio/AudioSdl.cpp
core/midi/MidiAlsaRaw.cpp
core/midi/MidiAlsaSeq.cpp
core/midi/MidiClient.cpp
core/midi/MidiController.cpp
core/midi/MidiOss.cpp
core/midi/MidiPort.cpp
core/midi/MidiWinMM.cpp
PARENT_SCOPE
)

94
src/gui/CMakeLists.txt Normal file
View File

@@ -0,0 +1,94 @@
SET(LMMS_SRCS
${LMMS_SRCS}
gui/AboutDialog.cpp
gui/ActionGroup.cpp
gui/AutomatableModelView.cpp
gui/AutomationPatternView.cpp
gui/ControllerConnectionDialog.cpp
gui/ControllerDialog.cpp
gui/EffectControlDialog.cpp
gui/EffectSelectDialog.cpp
gui/embed.cpp
gui/ExportProjectDialog.cpp
gui/FileBrowser.cpp
gui/FxMixerView.cpp
gui/GuiApplication.cpp
gui/InstrumentView.cpp
gui/LfoControllerDialog.cpp
gui/LmmsPalette.cpp
gui/LmmsStyle.cpp
gui/MainWindow.cpp
gui/ModelView.cpp
gui/PeakControllerDialog.cpp
gui/PianoView.cpp
gui/PluginBrowser.cpp
gui/SetupDialog.cpp
gui/StringPairDrag.cpp
gui/TimeLineWidget.cpp
gui/ToolPluginView.cpp
gui/TrackContainerView.cpp
gui/dialogs/FileDialog.cpp
gui/dialogs/VersionedSaveDialog.cpp
gui/editors/AutomationEditor.cpp
gui/editors/BBEditor.cpp
gui/editors/Editor.cpp
gui/editors/PianoRoll.cpp
gui/editors/SongEditor.cpp
gui/widgets/AutomatableButton.cpp
gui/widgets/AutomatableSlider.cpp
gui/widgets/CaptionMenu.cpp
gui/widgets/ComboBox.cpp
gui/widgets/ControllerRackView.cpp
gui/widgets/ControllerView.cpp
gui/widgets/CPULoadWidget.cpp
gui/widgets/EffectRackView.cpp
gui/widgets/EffectView.cpp
gui/widgets/EnvelopeAndLfoView.cpp
gui/widgets/FadeButton.cpp
gui/widgets/Fader.cpp
gui/widgets/FxLine.cpp
gui/widgets/Graph.cpp
gui/widgets/GroupBox.cpp
gui/widgets/InstrumentFunctionViews.cpp
gui/widgets/InstrumentMidiIOView.cpp
gui/widgets/InstrumentSoundShapingView.cpp
gui/widgets/Knob.cpp
gui/widgets/LadspaControlView.cpp
gui/widgets/LcdSpinBox.cpp
gui/widgets/LcdWidget.cpp
gui/widgets/LedCheckbox.cpp
gui/widgets/MeterDialog.cpp
gui/widgets/MidiPortMenu.cpp
gui/widgets/NStateButton.cpp
gui/widgets/PixmapButton.cpp
gui/widgets/ProjectNotes.cpp
gui/widgets/RenameDialog.cpp
gui/widgets/Rubberband.cpp
gui/widgets/SendButtonIndicator.cpp
gui/widgets/SideBar.cpp
gui/widgets/SideBarWidget.cpp
gui/widgets/TabBar.cpp
gui/widgets/TabWidget.cpp
gui/widgets/TempoSyncKnob.cpp
gui/widgets/TextFloat.cpp
gui/widgets/TimeDisplayWidget.cpp
gui/widgets/ToolButton.cpp
gui/widgets/ToolTip.cpp
gui/widgets/TrackLabelButton.cpp
gui/widgets/VisualizationWidget.cpp
PARENT_SCOPE
)
set(LMMS_UIS
${LMMS_UIS}
gui/dialogs/about_dialog.ui
gui/dialogs/export_project.ui
gui/Forms/EffectSelectDialog.ui
PARENT_SCOPE
)

10
src/tracks/CMakeLists.txt Normal file
View File

@@ -0,0 +1,10 @@
set(LMMS_SRCS
${LMMS_SRCS}
tracks/AutomationTrack.cpp
tracks/BBTrack.cpp
tracks/InstrumentTrack.cpp
tracks/Pattern.cpp
tracks/SampleTrack.cpp
PARENT_SCOPE
)