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