--- qsampler/trunk/src/CMakeLists.txt 2019/08/25 14:17:00 3568 +++ qsampler/trunk/src/CMakeLists.txt 2022/02/06 10:50:27 4024 @@ -1,30 +1,15 @@ +# project (qsampler) -include_directories ( - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_CURRENT_SOURCE_DIR} - ${QT_INCLUDES} -) - -link_directories ( - ${CMAKE_CURRENT_BINARY_DIR} - ${QT_LIBRARY_DIR} -) +set (CMAKE_INCLUDE_CURRENT_DIR ON) -if (CONFIG_LIBLSCP) - include_directories (${LSCP_INCLUDE_DIRS}) - link_directories (${LSCP_LIBRARY_DIRS}) -endif () +set (CMAKE_AUTOUIC ON) +set (CMAKE_AUTOMOC ON) +set (CMAKE_AUTORCC ON) -if (CONFIG_LIBGIG) - include_directories (${GIG_INCLUDE_DIRS}) - link_directories (${GIG_LIBRARY_DIRS}) +if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/config.h) + file (REMOVE ${CMAKE_CURRENT_SOURCE_DIR}/config.h) endif () - -configure_file (cmake_config.h ${CMAKE_CURRENT_BINARY_DIR}/config.h) - -set (ac_prefix ${CMAKE_INSTALL_PREFIX}) - -configure_file (qsampler.desktop ${CMAKE_CURRENT_BINARY_DIR}/qsampler.desktop) +configure_file (config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) set (HEADERS qsampler.h @@ -46,6 +31,7 @@ qsamplerChannelForm.h qsamplerChannelFxForm.h qsamplerOptionsForm.h + qsamplerPaletteForm.h qsamplerMainForm.h ) @@ -68,6 +54,7 @@ qsamplerChannelForm.cpp qsamplerChannelFxForm.cpp qsamplerOptionsForm.cpp + qsamplerPaletteForm.cpp qsamplerMainForm.cpp ) @@ -79,6 +66,7 @@ qsamplerChannelForm.ui qsamplerChannelFxForm.ui qsamplerOptionsForm.ui + qsamplerPaletteForm.ui qsamplerMainForm.ui ) @@ -92,40 +80,98 @@ translations/qsampler_ru.ts ) -qt5_add_translation ( QM_FILES ${TRANSLATIONS} ) -add_custom_target( translations ALL DEPENDS ${QM_FILES} ) +if (QT_VERSION VERSION_LESS 5.15.0) + qt5_add_translation (QM_FILES ${TRANSLATIONS}) +else () + qt_add_translation (QM_FILES ${TRANSLATIONS}) +endif () + +add_custom_target (translations ALL DEPENDS ${QM_FILES}) + +if (WIN32) + set (RC_FILE ${CMAKE_CURRENT_SOURCE_DIR}/win32/${PROJECT_NAME}.rc) + set (RES_FILE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.res.obj) + find_program (WINDRES_EXECUTABLE NAMES windres mingw32-windres i686-mingw32-windres) + if (MINGW) + exec_program (${WINDRES_EXECUTABLE} + ARGS "-i ${RC_FILE} -o ${RES_FILE} --include-dir=${CMAKE_CURRENT_SOURCE_DIR}/images") + list (APPEND SOURCES ${RES_FILE}) + else () + list (APPEND SOURCES ${RC_FILE}) + endif () +endif () + +if (APPLE) + set (ICON_FILE ${CMAKE_CURRENT_SOURCE_DIR}/images/${PROJECT_NAME}.icns) + list (APPEND SOURCES ${ICON_FILE}) + set (MACOSX_BUNDLE_ICON_FILE ${PROJECT_NAME}.icns) + set_source_files_properties (${ICON_FILE} PROPERTIES + MACOSX_PACKAGE_LOCATION Resources) +endif () + -qt5_wrap_ui (UI_SOURCES ${FORMS}) -qt5_wrap_cpp (MOC_SOURCES ${HEADERS}) -qt5_add_resources (QRC_SOURCES ${RESOURCES}) - -add_executable (qsampler - ${UI_SOURCES} - ${MOC_SOURCES} - ${QRC_SOURCES} +add_executable (${PROJECT_NAME} + ${HEADERS} ${SOURCES} + ${FORMS} + ${RESOURCES} ) -target_link_libraries (qsampler - ${QT_LIBRARIES} - ${LSCP_LIBRARIES} -) +# Add some debugger flags. +if (CONFIG_DEBUG AND UNIX AND NOT APPLE) + target_compile_options (${PROJECT_NAME} PRIVATE -g -fsanitize=address -fno-omit-frame-pointer) + target_link_libraries (${PROJECT_NAME} PRIVATE asan) +endif () + +set_target_properties (${PROJECT_NAME} PROPERTIES CXX_STANDARD 17) + +if (WIN32) + set_target_properties (${PROJECT_NAME} PROPERTIES WIN32_EXECUTABLE true) +endif () + +if (APPLE) + set_target_properties (${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE true) +endif () + +target_link_libraries (${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) + +if (CONFIG_XUNIQUE) + target_link_libraries (${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Network) +endif () + +if (CONFIG_LIBLSCP) + target_link_libraries (${PROJECT_NAME} PRIVATE PkgConfig::LSCP) +endif () if (CONFIG_LIBGIG) - target_link_libraries (qsampler ${GIG_LIBRARIES}) + target_link_libraries (${PROJECT_NAME} PRIVATE PkgConfig::GIG) endif () -qt5_use_modules (qsampler Core Gui Widgets Network) if (UNIX AND NOT APPLE) - install (TARGETS qsampler - RUNTIME DESTINATION bin) + install (TARGETS ${PROJECT_NAME} RUNTIME + DESTINATION ${CMAKE_INSTALL_BINDIR}) install (FILES ${QM_FILES} - DESTINATION share/qsampler/translations) - install (FILES ${CMAKE_CURRENT_BINARY_DIR}/qsampler.desktop - DESTINATION share/applications) - install (FILES images/qsampler.png - DESTINATION share/pixmaps) - install (FILES appdata/qsampler.appdata.xml - DESTINATION share/metainfo) + DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/translations) + install (FILES images/${PROJECT_NAME}.png + DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/32x32/apps) + install (FILES images/${PROJECT_NAME}.svg + DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps) + install (FILES appdata/org.rncbc.${PROJECT_NAME}.desktop + DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) + install (FILES appdata/org.rncbc.${PROJECT_NAME}.metainfo.xml + DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo) + install (FILES mimetypes/${PROJECT_NAME}.xml + DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages) + install (FILES mimetypes/application-x-${PROJECT_NAME}-session.png + DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/32x32/mimetypes) + install (FILES mimetypes/application-x-${PROJECT_NAME}-session.svg + DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/mimetypes) +endif () + +if (WIN32) + install (TARGETS ${PROJECT_NAME} RUNTIME + DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) + install (FILES ${QM_FILES} + DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/translations) endif ()