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