Merge pull request #1596 from LMMS/cmake
CMake use explicit source file specifying
This commit is contained in:
167
CMakeLists.txt
167
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
|
||||
#
|
||||
|
||||
@@ -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
170
src/CMakeLists.txt
Normal 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
88
src/core/CMakeLists.txt
Normal 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
94
src/gui/CMakeLists.txt
Normal 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
10
src/tracks/CMakeLists.txt
Normal 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
|
||||
)
|
||||
Reference in New Issue
Block a user