Update CMakeLists to follow KDE pattern
This commit is contained in:
parent
122df11433
commit
220be1744d
|
|
@ -2,8 +2,8 @@ cmake_minimum_required(VERSION 3.22)
|
||||||
project(Kompanion LANGUAGES CXX)
|
project(Kompanion LANGUAGES CXX)
|
||||||
set(PROJECT_VERSION "0.0.1")
|
set(PROJECT_VERSION "0.0.1")
|
||||||
|
|
||||||
set(QT_MIN_VERSION "6.8.0")
|
set(QT_MIN_VERSION "6.0.0")
|
||||||
set(KF6_MIN_VERSION "6.8.0")
|
set(KF6_MIN_VERSION "6.0.0")
|
||||||
set(KDE_COMPILERSETTINGS_LEVEL "5.82")
|
set(KDE_COMPILERSETTINGS_LEVEL "5.82")
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
|
@ -37,18 +37,9 @@ if (KOMPANION_USE_GUI)
|
||||||
find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Gui)
|
find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Gui)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(KOMPANION_KCONFIG_TARGET "")
|
find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
|
||||||
find_package(KF6Config ${KF6_MIN_VERSION} QUIET)
|
Config
|
||||||
if (KF6Config_FOUND)
|
)
|
||||||
set(KOMPANION_KCONFIG_TARGET KF6::ConfigCore)
|
|
||||||
else()
|
|
||||||
find_package(KF5Config QUIET)
|
|
||||||
if (KF5Config_FOUND)
|
|
||||||
set(KOMPANION_KCONFIG_TARGET KF5::ConfigCore)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
add_feature_info("KConfig" NOT (KOMPANION_KCONFIG_TARGET STREQUAL "") "Persist settings via KConfig if available.")
|
|
||||||
|
|
||||||
find_package(Qt6Test ${QT_MIN_VERSION} CONFIG QUIET)
|
find_package(Qt6Test ${QT_MIN_VERSION} CONFIG QUIET)
|
||||||
set_package_properties(Qt6Test PROPERTIES
|
set_package_properties(Qt6Test PROPERTIES
|
||||||
PURPOSE "Required for tests"
|
PURPOSE "Required for tests"
|
||||||
|
|
@ -60,19 +51,13 @@ add_feature_info("Qt6Test" Qt6Test_FOUND "Required for building tests")
|
||||||
set(KOMPANION_DB_INIT_INSTALL_DIR "${KDE_INSTALL_FULL_DATADIR}/kompanion/db/init")
|
set(KOMPANION_DB_INIT_INSTALL_DIR "${KDE_INSTALL_FULL_DATADIR}/kompanion/db/init")
|
||||||
install(DIRECTORY db/init/ DESTINATION ${KDE_INSTALL_DATADIR}/kompanion/db/init FILES_MATCHING PATTERN "*.sql")
|
install(DIRECTORY db/init/ DESTINATION ${KDE_INSTALL_DATADIR}/kompanion/db/init FILES_MATCHING PATTERN "*.sql")
|
||||||
|
|
||||||
option(BUILD_KOMPANION_CLI "Build Kompanion Qt command-line client" ON)
|
|
||||||
|
|
||||||
add_subdirectory(src/dal)
|
add_subdirectory(src/dal)
|
||||||
|
|
||||||
add_executable(kom_mcp
|
add_executable(kom_mcp
|
||||||
src/main.cpp
|
src/main.cpp
|
||||||
)
|
)
|
||||||
target_include_directories(kom_mcp PRIVATE src)
|
target_include_directories(kom_mcp PRIVATE src)
|
||||||
target_link_libraries(kom_mcp PRIVATE kom_dal)
|
target_link_libraries(kom_mcp PRIVATE kom_dal KF6::ConfigCore)
|
||||||
if (NOT KOMPANION_KCONFIG_TARGET STREQUAL "")
|
|
||||||
target_link_libraries(kom_mcp PRIVATE ${KOMPANION_KCONFIG_TARGET})
|
|
||||||
target_compile_definitions(kom_mcp PRIVATE HAVE_KCONFIG)
|
|
||||||
endif()
|
|
||||||
target_compile_options(kom_mcp PRIVATE -fexceptions)
|
target_compile_options(kom_mcp PRIVATE -fexceptions)
|
||||||
target_compile_definitions(kom_mcp PRIVATE
|
target_compile_definitions(kom_mcp PRIVATE
|
||||||
PROJECT_SOURCE_DIR="${CMAKE_SOURCE_DIR}"
|
PROJECT_SOURCE_DIR="${CMAKE_SOURCE_DIR}"
|
||||||
|
|
@ -83,7 +68,6 @@ install(TARGETS kom_mcp RUNTIME DESTINATION bin)
|
||||||
|
|
||||||
option(BUILD_TESTS "Build tests" ON)
|
option(BUILD_TESTS "Build tests" ON)
|
||||||
|
|
||||||
if (BUILD_KOMPANION_CLI)
|
|
||||||
add_executable(kompanion
|
add_executable(kompanion
|
||||||
src/cli/KompanionApp.cpp
|
src/cli/KompanionApp.cpp
|
||||||
)
|
)
|
||||||
|
|
@ -91,19 +75,10 @@ if (BUILD_KOMPANION_CLI)
|
||||||
target_link_libraries(kompanion PRIVATE
|
target_link_libraries(kompanion PRIVATE
|
||||||
Qt6::Core
|
Qt6::Core
|
||||||
Qt6::Sql
|
Qt6::Sql
|
||||||
|
KF6::ConfigCore
|
||||||
kom_dal
|
kom_dal
|
||||||
)
|
)
|
||||||
target_compile_definitions(kompanion PRIVATE
|
install(TARGETS kompanion RUNTIME ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
|
||||||
PROJECT_SOURCE_DIR="${CMAKE_SOURCE_DIR}"
|
|
||||||
KOMPANION_DB_INIT_INSTALL_DIR="${KOMPANION_DB_INIT_INSTALL_DIR}"
|
|
||||||
)
|
|
||||||
if (NOT KOMPANION_KCONFIG_TARGET STREQUAL "")
|
|
||||||
target_link_libraries(kompanion PRIVATE ${KOMPANION_KCONFIG_TARGET})
|
|
||||||
target_compile_definitions(kompanion PRIVATE HAVE_KCONFIG)
|
|
||||||
endif()
|
|
||||||
target_compile_options(kompanion PRIVATE -fexceptions -Wno-unused-function)
|
|
||||||
install(TARGETS kompanion RUNTIME DESTINATION bin)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (BUILD_TESTS)
|
if (BUILD_TESTS)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue