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.45") 0005 0006 project(libkleo VERSION ${PIM_VERSION}) 0007 0008 set(KF_MIN_VERSION "5.248.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(ECMFeatureSummary) 0033 include(ECMAddQch) 0034 include(KDEClangFormat) 0035 include(KDEGitCommitHooks) 0036 0037 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) 0038 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") 0039 0040 set(LIBKLEO_LIB_VERSION ${PIM_VERSION}) 0041 set(QT_REQUIRED_VERSION "6.6.0") 0042 set(GPGME_REQUIRED_VERSION "1.20.0") 0043 set(KTEXTADDONS_MIN_VERSION "1.5.1") 0044 set(GPG_ERROR_REQUIRED_VERSION "1.36") 0045 0046 find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Widgets) 0047 find_package(KF6I18n ${KF6_WANT_VERSION} CONFIG REQUIRED) 0048 find_package(KF6Config ${KF6_WANT_VERSION} CONFIG REQUIRED) 0049 find_package(KF6WidgetsAddons ${KF6_WANT_VERSION} CONFIG REQUIRED) 0050 find_package(KF6ColorScheme ${KF6_WANT_VERSION} CONFIG REQUIRED) 0051 find_package(KF6Completion ${KF6_WANT_VERSION} CONFIG REQUIRED) 0052 find_package(KF6CoreAddons ${KF6_WANT_VERSION} CONFIG REQUIRED) 0053 find_package(KF6Codecs ${KF6_WANT_VERSION} CONFIG REQUIRED) 0054 find_package(KF6ItemModels ${KF6_WANT_VERSION} CONFIG REQUIRED) 0055 find_package(KF6TextCustomEditor ${KTEXTADDONS_MIN_VERSION} CONFIG) 0056 0057 find_package(Gpgmepp ${GPGME_REQUIRED_VERSION} CONFIG REQUIRED) 0058 set_package_properties(Gpgmepp PROPERTIES DESCRIPTION "GpgME++ Library" URL "https://www.gnupg.org" TYPE REQUIRED PURPOSE "GpgME++ is required for OpenPGP support") 0059 message(STATUS "GpgME++ Version ${Gpgmepp_VERSION}") 0060 set(QGPGME_NAME "QGpgmeQt6") 0061 if (Gpgmepp_VERSION VERSION_GREATER_EQUAL "1.23.0") 0062 set(GPGMEPP_KEY_HAS_HASCERTIFY_SIGN_ENCRYPT_AUTHENTICATE 1) 0063 endif() 0064 find_package(${QGPGME_NAME} ${GPGME_REQUIRED_VERSION} CONFIG REQUIRED) 0065 0066 find_package(LibGpgError ${GPG_ERROR_REQUIRED_VERSION} REQUIRED) 0067 set_package_properties(LibGpgError PROPERTIES 0068 TYPE REQUIRED 0069 ) 0070 0071 find_package(Boost 1.34.0) 0072 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") 0073 ecm_setup_version(PROJECT VARIABLE_PREFIX LIBKLEO 0074 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/libkleo_version.h" 0075 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KPim6LibkleoConfigVersion.cmake" 0076 SOVERSION 6 0077 ) 0078 0079 ########### Targets ########### 0080 ecm_set_disabled_deprecation_versions(QT 5.15.2 KF 5.249.0) 0081 0082 remove_definitions(-DQT_NO_FOREACH) 0083 add_definitions(-DQT_NO_EMIT) 0084 ########### CMake Config Files ########### 0085 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KPim6Libkleo") 0086 0087 0088 install(FILES 0089 ${CMAKE_CURRENT_BINARY_DIR}/libkleo_version.h 0090 DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPim6/Libkleo COMPONENT Devel 0091 ) 0092 0093 include_directories(${CMAKE_CURRENT_BINARY_DIR}) 0094 0095 option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF) 0096 0097 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF) 0098 if (USE_UNITY_CMAKE_SUPPORT) 0099 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT ON) 0100 set(UNITY_BUILD ON) 0101 endif() 0102 0103 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-libkleo.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-libkleo.h) 0104 0105 add_subdirectory(src) 0106 if (BUILD_TESTING) 0107 add_subdirectory(autotests) 0108 add_subdirectory(tests) 0109 endif() 0110 0111 ecm_qt_install_logging_categories( 0112 EXPORT LIBKLEO 0113 FILE libkleo.categories 0114 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} 0115 ) 0116 0117 ki18n_install(po) 0118 if (BUILD_QCH) 0119 ecm_install_qch_export( 0120 TARGETS KPim6Libkleo_QCH 0121 FILE KPim6LibkleoQchTargets.cmake 0122 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0123 COMPONENT Devel 0124 ) 0125 set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KPim6LibkleoQchTargets.cmake\")") 0126 endif() 0127 0128 configure_package_config_file( 0129 "${CMAKE_CURRENT_SOURCE_DIR}/KPimLibkleoConfig.cmake.in" 0130 "${CMAKE_CURRENT_BINARY_DIR}/KPim6LibkleoConfig.cmake" 0131 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} 0132 ) 0133 0134 install(FILES 0135 "${CMAKE_CURRENT_BINARY_DIR}/KPim6LibkleoConfig.cmake" 0136 "${CMAKE_CURRENT_BINARY_DIR}/KPim6LibkleoConfigVersion.cmake" 0137 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0138 COMPONENT Devel 0139 ) 0140 0141 install(EXPORT KPim6LibkleoTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KPim6LibkleoTargets.cmake NAMESPACE KPim6::) 0142 0143 ecm_feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) 0144 0145 # add clang-format target for all our real source files 0146 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c) 0147 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 0148 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) 0149