diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e1d1b5d4..ff9e94442 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 # diff --git a/cmake/modules/BuildPlugin.cmake b/cmake/modules/BuildPlugin.cmake index ea53486be..b12d05b5a 100644 --- a/cmake/modules/BuildPlugin.cmake +++ b/cmake/modules/BuildPlugin.cmake @@ -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}") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 000000000..3446bc3e5 --- /dev/null +++ b/src/CMakeLists.txt @@ -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}" "$") + + 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) diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt new file mode 100644 index 000000000..c59cd6680 --- /dev/null +++ b/src/core/CMakeLists.txt @@ -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 +) diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt new file mode 100644 index 000000000..548e4ad14 --- /dev/null +++ b/src/gui/CMakeLists.txt @@ -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 +) diff --git a/src/tracks/CMakeLists.txt b/src/tracks/CMakeLists.txt new file mode 100644 index 000000000..158588318 --- /dev/null +++ b/src/tracks/CMakeLists.txt @@ -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 +)