cmake_minimum_required(VERSION 3.22) project(Kompanion LANGUAGES CXX) set(PROJECT_VERSION "0.0.1") set(QT_MIN_VERSION "6.0.0") set(KF6_MIN_VERSION "6.0.0") set(KDE_COMPILERSETTINGS_LEVEL "5.82") set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) include(ECMMarkAsTest) include(ECMMarkNonGuiExecutable) include(FeatureSummary) include(CheckIncludeFile) include(CheckIncludeFiles) include(CheckSymbolExists) include(ECMOptionalAddSubdirectory) include(KDEClangFormat) include(ECMDeprecationSettings) include(KDEGitCommitHooks) find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Network Sql ) find_package(Qt6McpServer CONFIG REQUIRED) find_package(Qt6McpCommon CONFIG REQUIRED) find_package(Qt6 ${KF6_MIN_VERSON} CONFIG REQUIRED COMPONENTS Gui) find_package(KF6Config ${KF6_MIN_VERSION} CONFIG REQUIRED) find_package(KF6Parts ${KF6_MIN_VERSION} CONFIG REQUIRED) find_package(KF6TextEditor ${KF6_MIN_VERSION} CONFIG REQUIRED) find_package(Qt6Test ${QT_MIN_VERSION} CONFIG QUIET) set_package_properties(Qt6Test PROPERTIES PURPOSE "Required for tests" TYPE OPTIONAL ) add_feature_info("Qt6Test" Qt6Test_FOUND "Required for building tests") 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") add_subdirectory(src) option(BUILD_TESTS "Build tests" ON) if (BUILD_TESTS) enable_testing() add_subdirectory(tests) endif() feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)