Warning, /frameworks/krunner/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: KDE Contributors
0002 # SPDX-License-Identifier: BSD-2-Clause
0003 
0004 cmake_minimum_required(VERSION 3.16)
0005 
0006 set(KF_VERSION "5.116.0") # handled by release scripts
0007 set(KF_DEP_VERSION "5.115.0") # handled by release scripts
0008 project(KRunner VERSION ${KF_VERSION})
0009 
0010 # ECM setup
0011 include(FeatureSummary)
0012 find_package(ECM 5.115.0  NO_MODULE)
0013 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules")
0014 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
0015 
0016 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
0017 
0018 include(KDEInstallDirs)
0019 include(KDECMakeSettings)
0020 include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
0021 
0022 include(ECMGenerateExportHeader)
0023 include(ECMSetupVersion)
0024 include(ECMGenerateHeaders)
0025 include(ECMAddQch)
0026 include(CMakePackageConfigHelpers)
0027 include(KDEPackageAppTemplates)
0028 include(ECMQtDeclareLoggingCategory)
0029 include(ECMSetupQtPluginMacroNames)
0030 include(ECMDeprecationSettings)
0031 include(KDEGitCommitHooks)
0032 
0033 
0034 set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].")
0035 
0036 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF)
0037 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)")
0038 
0039 ecm_setup_version(PROJECT
0040     VARIABLE_PREFIX KRUNNER
0041     VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/krunner_version.h"
0042     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5RunnerConfigVersion.cmake"
0043 )
0044 
0045 # Dependencies
0046 set(REQUIRED_QT_VERSION 5.15.2)
0047 
0048 find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED Gui Widgets Quick)
0049 
0050 ecm_set_disabled_deprecation_versions(
0051     QT ${REQUIRED_QT_VERSION}
0052     KF 5.95.0
0053     PLASMA 5.0.0  # needed because we use Plasma::Package in the API
0054     KSERVICE 5.89.0  # needed because we use KPluginInfo, KServiceTypeTrader in the API
0055 )
0056 
0057 find_package(KF5Config ${KF_DEP_VERSION} REQUIRED)
0058 find_package(KF5CoreAddons ${KF_DEP_VERSION} REQUIRED)
0059 find_package(KF5I18n ${KF_DEP_VERSION} REQUIRED)
0060 find_package(KF5ThreadWeaver ${KF_DEP_VERSION} REQUIRED)
0061 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND
0062    EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.91.0)
0063     find_package(KF5KIO ${KF_DEP_VERSION} REQUIRED)
0064     find_package(KF5Service ${KF_DEP_VERSION} REQUIRED)
0065     find_package(KF5Plasma ${KF_DEP_VERSION} REQUIRED)
0066 else()
0067     set(KF5Plasma_FOUND 0)
0068 endif()
0069 
0070 find_package(KF5Activities ${KF_DEP_VERSION})
0071 set_package_properties(KF5Activities PROPERTIES
0072         DESCRIPTION "Library for Activities"
0073         PURPOSE "Required for activities support (optional)"
0074         TYPE OPTIONAL
0075         )
0076 if(KF5Activities_FOUND)
0077     set(HAVE_KACTIVITIES TRUE)
0078 endif()
0079 
0080 # TODO KF6 remove
0081 ecm_setup_qtplugin_macro_names(
0082     JSON_NONE
0083         "K_EXPORT_PLASMA_RUNNER"
0084         "K_EXPORT_RUNNER_CONFIG"
0085     JSON_ARG2
0086         "K_EXPORT_PLASMA_RUNNER_WITH_JSON"
0087     CONFIG_CODE_VARIABLE
0088         PACKAGE_SETUP_AUTOMOC_VARIABLES
0089 )
0090 
0091 # Subdirectories
0092 add_subdirectory(src)
0093 if (BUILD_TESTING)
0094     add_subdirectory(autotests)
0095 endif()
0096 add_subdirectory(templates)
0097 
0098 # Create a Config.cmake and a ConfigVersion.cmake file and install them
0099 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Runner")
0100 
0101 if (BUILD_QCH)
0102     ecm_install_qch_export(
0103         TARGETS KF5Runner_QCH
0104         FILE KF5RunnerQchTargets.cmake
0105         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0106         COMPONENT Devel
0107     )
0108     set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5RunnerQchTargets.cmake\")")
0109 endif()
0110 
0111 configure_package_config_file(
0112     "${CMAKE_CURRENT_SOURCE_DIR}/KF5RunnerConfig.cmake.in"
0113     "${CMAKE_CURRENT_BINARY_DIR}/KF5RunnerConfig.cmake"
0114     INSTALL_DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0115 )
0116 
0117 install(FILES
0118             "${CMAKE_CURRENT_BINARY_DIR}/KF5RunnerConfig.cmake"
0119             "${CMAKE_CURRENT_BINARY_DIR}/KF5RunnerConfigVersion.cmake"
0120             "${CMAKE_CURRENT_SOURCE_DIR}/KF5KRunnerMacros.cmake"
0121         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0122         COMPONENT Devel)
0123 
0124 install(EXPORT KF5RunnerTargets
0125         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0126         FILE KF5RunnerTargets.cmake
0127         NAMESPACE KF5::)
0128 
0129 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/krunner_version.h"
0130         DESTINATION "${KDE_INSTALL_INCLUDEDIR_KF}/KRunner"
0131         COMPONENT Devel)
0132 
0133 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
0134 
0135 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)