Warning, /frameworks/kcoreaddons/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.105.0") # handled by release scripts 0004 project(KCoreAddons VERSION ${KF_VERSION}) 0005 0006 include(FeatureSummary) 0007 find_package(ECM 5.104.0 NO_MODULE) 0008 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules") 0009 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) 0010 0011 0012 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) 0013 0014 include(KDEInstallDirs) 0015 include(KDECMakeSettings) 0016 include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) 0017 include(KDEGitCommitHooks) 0018 0019 include(ECMGenerateExportHeader) 0020 include(CMakePackageConfigHelpers) 0021 include(ECMSetupVersion) 0022 include(ECMGenerateHeaders) 0023 include(ECMQtDeclareLoggingCategory) 0024 include(ECMAddQch) 0025 include(ECMSetupQtPluginMacroNames) 0026 include(ECMDeprecationSettings) 0027 0028 set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].") 0029 0030 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) 0031 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") 0032 0033 set(REQUIRED_QT_VERSION 5.15.2) 0034 find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core) 0035 0036 ecm_setup_qtplugin_macro_names( 0037 JSON_NONE 0038 "K_PLUGIN_FACTORY" 0039 "K_PLUGIN_CLASS" 0040 JSON_ARG2 0041 "K_PLUGIN_FACTORY_WITH_JSON" 0042 "K_PLUGIN_CLASS_WITH_JSON" 0043 CONFIG_CODE_VARIABLE 0044 PACKAGE_SETUP_AUTOMOC_VARIABLES 0045 ) 0046 0047 if(NOT WIN32) 0048 find_package(Threads REQUIRED) 0049 endif() 0050 0051 # Configure checks for kdirwatch 0052 find_package(FAM) 0053 0054 set_package_properties(FAM PROPERTIES 0055 PURPOSE "Provides file alteration notification facilities using a separate service. FAM provides additional support for NFS.") 0056 0057 set(HAVE_FAM ${FAM_FOUND}) 0058 0059 option(ENABLE_INOTIFY "Try to use inotify for directory monitoring" ON) 0060 if(ENABLE_INOTIFY) 0061 # Find libinotify 0062 find_package(Inotify) 0063 set_package_properties(Inotify PROPERTIES 0064 PURPOSE "Filesystem alteration notifications using inotify") 0065 set(HAVE_SYS_INOTIFY_H ${Inotify_FOUND}) 0066 else() 0067 set(HAVE_SYS_INOTIFY_H FALSE) 0068 endif() 0069 0070 set(HAVE_PROCSTAT FALSE) 0071 string(REGEX MATCH "[Bb][Ss][Dd]" BSDLIKE ${CMAKE_SYSTEM_NAME}) 0072 if (BSDLIKE) 0073 option(ENABLE_PROCSTAT "Try to use libprocstat for process information (for BSD-like systems)" ON) 0074 if (ENABLE_PROCSTAT) 0075 # Find libprocstat 0076 find_package(Procstat) 0077 set_package_properties(Procstat PROPERTIES 0078 PURPOSE "Process information using libprocstat") 0079 set(HAVE_PROCSTAT ${PROCSTAT_FOUND}) 0080 endif() 0081 if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD") 0082 set_package_properties(Procstat PROPERTIES 0083 TYPE REQUIRED 0084 ) 0085 endif() 0086 endif() 0087 0088 if(NOT WIN32) # never relevant there 0089 find_package(Qt${QT_MAJOR_VERSION}DBus ${QT_MIN_VERSION} CONFIG) 0090 set(HAVE_QTDBUS ${Qt${QT_MAJOR_VERSION}DBus_FOUND}) 0091 add_feature_info(XDGPortalDragAndDrop HAVE_QTDBUS "Drag and Drop support via xdg-desktop-portal requies QtDBus") 0092 endif() 0093 0094 if (CMAKE_SYSTEM_NAME MATCHES "Linux") 0095 find_package(UDev) # Used by KFilesystemType 0096 set(HAVE_UDEV ${UDev_FOUND}) 0097 endif() 0098 0099 configure_file(src/lib/io/config-kdirwatch.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/lib/io/config-kdirwatch.h) 0100 0101 configure_file(src/lib/io/config-kfilesystemtype.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/lib/io/config-kfilesystemtype.h) 0102 0103 include(ECMPoQmTools) 0104 0105 ecm_setup_version(PROJECT VARIABLE_PREFIX KCOREADDONS 0106 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kcoreaddons_version.h" 0107 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5CoreAddonsConfigVersion.cmake" 0108 SOVERSION 5) 0109 0110 0111 ecm_install_po_files_as_qm(poqm) 0112 0113 kde_enable_exceptions() 0114 0115 0116 ecm_set_disabled_deprecation_versions( 0117 QT 5.14.0 # Not 5.15 because of qsrand 0118 ) 0119 0120 add_subdirectory(src) 0121 if (BUILD_TESTING) 0122 add_subdirectory(autotests) 0123 add_subdirectory(tests) 0124 endif() 0125 0126 # create a Config.cmake and a ConfigVersion.cmake file and install them 0127 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5CoreAddons") 0128 0129 if (BUILD_QCH) 0130 ecm_install_qch_export( 0131 TARGETS KF5CoreAddons_QCH 0132 FILE KF5CoreAddonsQchTargets.cmake 0133 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0134 COMPONENT Devel 0135 ) 0136 set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5CoreAddonsQchTargets.cmake\")") 0137 endif() 0138 0139 configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/KF5CoreAddonsConfig.cmake.in" 0140 "${CMAKE_CURRENT_BINARY_DIR}/KF5CoreAddonsConfig.cmake" 0141 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} 0142 ) 0143 0144 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KF5CoreAddonsConfig.cmake" 0145 "${CMAKE_CURRENT_BINARY_DIR}/KF5CoreAddonsConfigVersion.cmake" 0146 "${CMAKE_CURRENT_SOURCE_DIR}/KF5CoreAddonsMacros.cmake" 0147 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0148 COMPONENT Devel ) 0149 0150 install(EXPORT KF5CoreAddonsTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KF5CoreAddonsTargets.cmake NAMESPACE KF5:: ) 0151 install(EXPORT KF5CoreAddonsToolingTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KF5CoreAddonsToolingTargets.cmake NAMESPACE KF5:: ) 0152 0153 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kcoreaddons_version.h 0154 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KCoreAddons COMPONENT Devel) 0155 0156 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) 0157 0158 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)