Warning, /pim/libkleo/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # SPDX-License-Identifier: CC0-1.0 0002 # SPDX-FileCopyrightText: none 0003 cmake_minimum_required(VERSION 3.16 FATAL_ERROR) 0004 set(PIM_VERSION "6.0.0") 0005 0006 project(libkleo VERSION ${PIM_VERSION}) 0007 0008 set(KF_MIN_VERSION "5.246.0") 0009 0010 if (WIN32) 0011 set(KF6_WANT_VERSION "5.104.0") 0012 add_compile_definitions(GPG_ERR_ENABLE_GETTEXT_MACROS=1) 0013 else () 0014 set(KF6_WANT_VERSION ${KF_MIN_VERSION}) 0015 endif () 0016 0017 find_package(ECM ${KF6_WANT_VERSION} CONFIG REQUIRED) 0018 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) 0019 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH}) 0020 0021 include(KDEInstallDirs) 0022 include(KDECMakeSettings) 0023 include(KDECompilerSettings NO_POLICY_SCOPE) 0024 0025 include(ECMGenerateExportHeader) 0026 include(ECMSetupVersion) 0027 include(ECMGenerateHeaders) 0028 0029 include(FeatureSummary) 0030 include(ECMQtDeclareLoggingCategory) 0031 include(ECMDeprecationSettings) 0032 include(ECMAddQch) 0033 include(KDEClangFormat) 0034 include(KDEGitCommitHooks) 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 set(LIBKLEO_LIB_VERSION ${PIM_VERSION}) 0040 set(QT_REQUIRED_VERSION "6.6.0") 0041 set(GPGME_REQUIRED_VERSION "1.20.0") 0042 set(KTEXTADDONS_MIN_VERSION "1.5.1") 0043 set(GPG_ERROR_REQUIRED_VERSION "1.36") 0044 0045 find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Widgets) 0046 find_package(KF6I18n ${KF6_WANT_VERSION} CONFIG REQUIRED) 0047 find_package(KF6Config ${KF6_WANT_VERSION} CONFIG REQUIRED) 0048 find_package(KF6WidgetsAddons ${KF6_WANT_VERSION} CONFIG REQUIRED) 0049 find_package(KF6ColorScheme ${KF6_WANT_VERSION} CONFIG REQUIRED) 0050 find_package(KF6Completion ${KF6_WANT_VERSION} CONFIG REQUIRED) 0051 find_package(KF6CoreAddons ${KF6_WANT_VERSION} CONFIG REQUIRED) 0052 find_package(KF6Codecs ${KF6_WANT_VERSION} CONFIG REQUIRED) 0053 find_package(KF6ItemModels ${KF6_WANT_VERSION} CONFIG REQUIRED) 0054 find_package(KF6TextCustomEditor ${KTEXTADDONS_MIN_VERSION} CONFIG) 0055 0056 find_package(Gpgmepp ${GPGME_REQUIRED_VERSION} CONFIG REQUIRED) 0057 set_package_properties(Gpgmepp PROPERTIES DESCRIPTION "GpgME++ Library" URL "https://www.gnupg.org" TYPE REQUIRED PURPOSE "GpgME++ is required for OpenPGP support") 0058 message(STATUS "GpgME++ Version ${Gpgmepp_VERSION}") 0059 set(QGPGME_NAME "QGpgmeQt6") 0060 if (Gpgmepp_VERSION VERSION_GREATER_EQUAL "1.23.0") 0061 set(GPGMEPP_KEY_HAS_HASCERTIFY_SIGN_ENCRYPT_AUTHENTICATE 1) 0062 endif() 0063 find_package(${QGPGME_NAME} ${GPGME_REQUIRED_VERSION} CONFIG REQUIRED) 0064 0065 find_package(LibGpgError ${GPG_ERROR_REQUIRED_VERSION} REQUIRED) 0066 set_package_properties(LibGpgError PROPERTIES 0067 TYPE REQUIRED 0068 ) 0069 0070 find_package(Boost 1.34.0) 0071 set_package_properties(Boost PROPERTIES DESCRIPTION "Boost C++ Libraries" URL "https://www.boost.org" TYPE REQUIRED PURPOSE "Boost is required for building most KDEPIM applications") 0072 ecm_setup_version(PROJECT VARIABLE_PREFIX LIBKLEO 0073 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/libkleo_version.h" 0074 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KPim6LibkleoConfigVersion.cmake" 0075 SOVERSION 6 0076 ) 0077 0078 ########### Targets ########### 0079 ecm_set_disabled_deprecation_versions(QT 5.15.2 KF 5.248.0) 0080 0081 remove_definitions(-DQT_NO_FOREACH) 0082 add_definitions(-DQT_NO_EMIT) 0083 ########### CMake Config Files ########### 0084 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KPim6Libkleo") 0085 0086 0087 install(FILES 0088 ${CMAKE_CURRENT_BINARY_DIR}/libkleo_version.h 0089 DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPim6/Libkleo COMPONENT Devel 0090 ) 0091 0092 include_directories(${CMAKE_CURRENT_BINARY_DIR}) 0093 0094 option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF) 0095 0096 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF) 0097 if (USE_UNITY_CMAKE_SUPPORT) 0098 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT ON) 0099 set(UNITY_BUILD ON) 0100 endif() 0101 0102 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-libkleo.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-libkleo.h) 0103 0104 add_subdirectory(src) 0105 if (BUILD_TESTING) 0106 add_subdirectory(autotests) 0107 add_subdirectory(tests) 0108 endif() 0109 0110 ecm_qt_install_logging_categories( 0111 EXPORT LIBKLEO 0112 FILE libkleo.categories 0113 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} 0114 ) 0115 0116 ki18n_install(po) 0117 if (BUILD_QCH) 0118 ecm_install_qch_export( 0119 TARGETS KPim6Libkleo_QCH 0120 FILE KPim6LibkleoQchTargets.cmake 0121 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0122 COMPONENT Devel 0123 ) 0124 set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KPim6LibkleoQchTargets.cmake\")") 0125 endif() 0126 0127 configure_package_config_file( 0128 "${CMAKE_CURRENT_SOURCE_DIR}/KPimLibkleoConfig.cmake.in" 0129 "${CMAKE_CURRENT_BINARY_DIR}/KPim6LibkleoConfig.cmake" 0130 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} 0131 ) 0132 0133 install(FILES 0134 "${CMAKE_CURRENT_BINARY_DIR}/KPim6LibkleoConfig.cmake" 0135 "${CMAKE_CURRENT_BINARY_DIR}/KPim6LibkleoConfigVersion.cmake" 0136 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0137 COMPONENT Devel 0138 ) 0139 0140 install(EXPORT KPim6LibkleoTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KPim6LibkleoTargets.cmake NAMESPACE KPim6::) 0141 0142 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) 0143 0144 # add clang-format target for all our real source files 0145 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c) 0146 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 0147 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) 0148