Warning, /frameworks/kservice/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16) 0002 0003 set(KF_VERSION "5.116.0") # handled by release scripts 0004 set(KF_DEP_VERSION "5.115.0") # handled by release scripts 0005 project(KService VERSION ${KF_VERSION}) 0006 0007 # Disallow in-source build 0008 if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") 0009 message(FATAL_ERROR "KService requires an out of source build. Please create a separate build directory and run 'cmake path_to_kservice [options]' there.") 0010 endif() 0011 0012 # ECM setup 0013 include(FeatureSummary) 0014 find_package(ECM 5.115.0 NO_MODULE) 0015 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules") 0016 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) 0017 0018 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) 0019 0020 include(KDEInstallDirs) 0021 include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) 0022 include(KDECMakeSettings) 0023 include(KDEGitCommitHooks) 0024 include(ECMSetupVersion) 0025 include(ECMGenerateHeaders) 0026 include(ECMAddQch) 0027 include(ECMQtDeclareLoggingCategory) 0028 include(ECMGenerateExportHeader) 0029 include(ECMDeprecationSettings) 0030 0031 set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].") 0032 0033 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) 0034 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") 0035 0036 ecm_setup_version(PROJECT 0037 VARIABLE_PREFIX KSERVICE 0038 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kservice_version.h" 0039 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5ServiceConfigVersion.cmake" 0040 SOVERSION 5) 0041 0042 set(APPLICATIONS_MENU_NAME applications.menu 0043 CACHE STRING "Name to install the applications.menu file as.") 0044 0045 # Dependencies 0046 set(REQUIRED_QT_VERSION 5.15.2) 0047 find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} CONFIG REQUIRED Xml) 0048 if (NOT ANDROID) 0049 find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} CONFIG REQUIRED DBus) 0050 endif() 0051 0052 find_package(KF5Config ${KF_DEP_VERSION} CONFIG REQUIRED) 0053 find_package(KF5CoreAddons ${KF_DEP_VERSION} CONFIG REQUIRED) 0054 if (NOT ANDROID) 0055 find_package(KF5DBusAddons ${KF_DEP_VERSION} CONFIG REQUIRED) 0056 endif() 0057 find_package(KF5I18n ${KF_DEP_VERSION} CONFIG REQUIRED) 0058 find_package(KF5DocTools ${KF_DEP_VERSION} CONFIG) 0059 0060 find_package(FLEX REQUIRED) 0061 set_package_properties(FLEX PROPERTIES 0062 URL "http://flex.sourceforge.net" 0063 DESCRIPTION "Fast Lexical Analyzer" 0064 TYPE REQUIRED 0065 PURPOSE "Required for the Trader parser" 0066 ) 0067 0068 find_package(BISON 3.0 REQUIRED) 0069 set_package_properties(BISON PROPERTIES 0070 URL "http://www.gnu.org/software/bison" 0071 DESCRIPTION "general-purpose parser generator" 0072 TYPE REQUIRED 0073 PURPOSE "Required for the Trader parser" 0074 ) 0075 0076 add_definitions(-DTRANSLATION_DOMAIN=\"kservice5\") 0077 0078 ecm_set_disabled_deprecation_versions( 0079 QT 5.15.2 0080 KF 5.97.0 0081 KCOREADDONS 5.78 # for KPluginInfo::dependencies 0082 ) 0083 0084 ki18n_install(po) 0085 0086 if (KF5DocTools_FOUND) 0087 kdoctools_install(po) 0088 endif() 0089 0090 if (KF5DocTools_FOUND) 0091 add_subdirectory(docs) 0092 endif() 0093 0094 add_subdirectory(src) 0095 if (BUILD_TESTING) 0096 add_subdirectory(autotests) 0097 add_subdirectory(tests) 0098 endif() 0099 0100 # create a Config.cmake and a ConfigVersion.cmake file and install them 0101 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Service") 0102 0103 if (BUILD_QCH) 0104 ecm_install_qch_export( 0105 TARGETS KF5Service_QCH 0106 FILE KF5ServiceQchTargets.cmake 0107 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0108 COMPONENT Devel 0109 ) 0110 set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5ServiceQchTargets.cmake\")") 0111 endif() 0112 0113 include(CMakePackageConfigHelpers) 0114 0115 configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/KF5ServiceConfig.cmake.in" 0116 "${CMAKE_CURRENT_BINARY_DIR}/KF5ServiceConfig.cmake" 0117 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} 0118 ) 0119 0120 install(EXPORT KF5ServiceTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KF5ServiceTargets.cmake NAMESPACE KF5:: ) 0121 0122 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KF5ServiceConfig.cmake" 0123 "${CMAKE_CURRENT_BINARY_DIR}/KF5ServiceConfigVersion.cmake" 0124 "${CMAKE_CURRENT_SOURCE_DIR}/KF5ServiceMacros.cmake" 0125 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0126 COMPONENT Devel 0127 ) 0128 0129 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kservice_version.h 0130 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KService COMPONENT Devel) 0131 0132 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) 0133 0134 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)