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 "5.24.52") 0005 0006 project(libkleo VERSION ${PIM_VERSION}) 0007 0008 set(KF_MIN_VERSION "5.105.0") 0009 0010 if (WIN32) 0011 set(KF5_WANT_VERSION "5.104.0") 0012 add_compile_definitions(GPG_ERR_ENABLE_GETTEXT_MACROS=1) 0013 else () 0014 set(KF5_WANT_VERSION ${KF_MIN_VERSION}) 0015 endif () 0016 0017 find_package(ECM ${KF5_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 include(ECMGeneratePriFile) 0029 0030 include(FeatureSummary) 0031 include(ECMQtDeclareLoggingCategory) 0032 include(ECMDeprecationSettings) 0033 include(ECMAddQch) 0034 include(KDEClangFormat) 0035 include(KDEGitCommitHooks) 0036 option(BUILD_WITH_COMPAT_LIBS "Generate compat cmake file (Set at false will allow to co-install lib)" OFF) 0037 0038 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) 0039 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") 0040 0041 set(LIBKLEO_LIB_VERSION ${PIM_VERSION}) 0042 set(QT_REQUIRED_VERSION "5.15.2") 0043 if (QT_MAJOR_VERSION STREQUAL "6") 0044 set(QT_REQUIRED_VERSION "6.4.0") 0045 set(KF_MIN_VERSION "5.240.0") 0046 set(KF_MAJOR_VERSION "6") 0047 else() 0048 set(KF_MAJOR_VERSION "5") 0049 endif() 0050 0051 set(KDEPIMTEXTEDIT_VERSION "5.24.0") 0052 set(GPGME_REQUIRED_VERSION "1.20.0") 0053 set(GPG_ERROR_REQUIRED_VERSION "1.36") 0054 0055 find_package(Qt${QT_MAJOR_VERSION} ${QT_REQUIRED_VERSION} CONFIG REQUIRED Widgets) 0056 if (QT_MAJOR_VERSION STREQUAL "6") 0057 find_package(Qt6Core5Compat) 0058 endif() 0059 find_package(KF${KF_MAJOR_VERSION}I18n ${KF5_WANT_VERSION} CONFIG REQUIRED) 0060 find_package(KF${KF_MAJOR_VERSION}Config ${KF5_WANT_VERSION} CONFIG REQUIRED) 0061 find_package(KF${KF_MAJOR_VERSION}WidgetsAddons ${KF5_WANT_VERSION} CONFIG REQUIRED) 0062 find_package(KF${KF_MAJOR_VERSION}ConfigWidgets ${KF5_WANT_VERSION} CONFIG REQUIRED) 0063 find_package(KF${KF_MAJOR_VERSION}Completion ${KF5_WANT_VERSION} CONFIG REQUIRED) 0064 find_package(KF${KF_MAJOR_VERSION}CoreAddons ${KF5_WANT_VERSION} CONFIG REQUIRED) 0065 find_package(KF${KF_MAJOR_VERSION}Codecs ${KF5_WANT_VERSION} CONFIG REQUIRED) 0066 find_package(KF${KF_MAJOR_VERSION}ItemModels ${KF5_WANT_VERSION} CONFIG REQUIRED) 0067 find_package(KPim${KF_MAJOR_VERSION}TextEdit ${KDEPIMTEXTEDIT_VERSION} CONFIG) 0068 0069 find_package(Gpgmepp ${GPGME_REQUIRED_VERSION} CONFIG REQUIRED) 0070 set_package_properties(Gpgmepp PROPERTIES DESCRIPTION "GpgME++ Library" URL "https://www.gnupg.org" TYPE REQUIRED PURPOSE "GpgME++ is required for OpenPGP support") 0071 message(STATUS "GpgME++ Version ${Gpgmepp_VERSION}") 0072 if (Gpgmepp_VERSION VERSION_GREATER_EQUAL "1.23.0") 0073 set(GPGMEPP_KEY_HAS_HASCERTIFY_SIGN_ENCRYPT_AUTHENTICATE 1) 0074 endif() 0075 set(QGPGME_NAME "QGpgme") 0076 find_package(${QGPGME_NAME} ${GPGME_REQUIRED_VERSION} CONFIG REQUIRED) 0077 0078 find_package(LibGpgError ${GPG_ERROR_REQUIRED_VERSION} REQUIRED) 0079 set_package_properties(LibGpgError PROPERTIES 0080 TYPE REQUIRED 0081 ) 0082 0083 find_package(Boost 1.34.0) 0084 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") 0085 0086 0087 set_package_properties(KPim${KF_MAJOR_VERSION}TextEdit PROPERTIES DESCRIPTION 0088 "A textedit with PIM-specific features." 0089 URL "https://commits.kde.org/kpimtextedit" 0090 TYPE OPTIONAL PURPOSE "Improved audit log viewer.") 0091 0092 ecm_setup_version(PROJECT VARIABLE_PREFIX LIBKLEO 0093 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/libkleo_version.h" 0094 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KPim${KF_MAJOR_VERSION}LibkleoConfigVersion.cmake" 0095 SOVERSION 5 0096 ) 0097 0098 ########### Targets ########### 0099 ecm_set_disabled_deprecation_versions(QT 5.15.2 KF 5.105.0) 0100 0101 remove_definitions(-DQT_NO_FOREACH) 0102 add_definitions(-DQT_NO_EMIT) 0103 ########### CMake Config Files ########### 0104 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KPim${KF_MAJOR_VERSION}Libkleo") 0105 set(LIBKLEO_KF5_COMPAT FALSE) 0106 configure_package_config_file( 0107 "${CMAKE_CURRENT_SOURCE_DIR}/KPimLibkleoConfig.cmake.in" 0108 "${CMAKE_CURRENT_BINARY_DIR}/KPim${KF_MAJOR_VERSION}LibkleoConfig.cmake" 0109 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} 0110 ) 0111 0112 install(FILES 0113 "${CMAKE_CURRENT_BINARY_DIR}/KPim${KF_MAJOR_VERSION}LibkleoConfig.cmake" 0114 "${CMAKE_CURRENT_BINARY_DIR}/KPim${KF_MAJOR_VERSION}LibkleoConfigVersion.cmake" 0115 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0116 COMPONENT Devel 0117 ) 0118 0119 install(EXPORT KPim${KF_MAJOR_VERSION}LibkleoTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KPim${KF_MAJOR_VERSION}LibkleoTargets.cmake NAMESPACE KPim${KF_MAJOR_VERSION}::) 0120 0121 install(FILES 0122 ${CMAKE_CURRENT_BINARY_DIR}/libkleo_version.h 0123 DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPim${KF_MAJOR_VERSION}/Libkleo COMPONENT Devel 0124 ) 0125 0126 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-libkleo.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-libkleo.h) 0127 include_directories(${CMAKE_CURRENT_BINARY_DIR}) 0128 0129 option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF) 0130 0131 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF) 0132 if (USE_UNITY_CMAKE_SUPPORT) 0133 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT ON) 0134 endif() 0135 0136 0137 add_subdirectory(src) 0138 if (BUILD_TESTING) 0139 add_subdirectory(autotests) 0140 add_subdirectory(tests) 0141 endif() 0142 0143 ecm_qt_install_logging_categories( 0144 EXPORT LIBKLEO 0145 FILE libkleo.categories 0146 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} 0147 ) 0148 0149 ki18n_install(po) 0150 if (BUILD_QCH) 0151 ecm_install_qch_export( 0152 TARGETS KPim${KF_MAJOR_VERSION}Libkleo_QCH 0153 FILE KPim${KF_MAJOR_VERSION}LibkleoQchTargets.cmake 0154 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0155 COMPONENT Devel 0156 ) 0157 set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KPim${KF_MAJOR_VERSION}LibkleoQchTargets.cmake\")") 0158 endif() 0159 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) 0160 0161 # add clang-format target for all our real source files 0162 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c) 0163 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 0164 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) 0165 0166 if (BUILD_WITH_COMPAT_LIBS) 0167 #if (QT_MAJOR_VERSION STREQUAL "5") 0168 ## 0169 # TODO: Backwards compatiblity. Remove in next major version 0170 ## 0171 set(CMAKECONFIG_INSTALL_DIR_KF5 "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Libkleo") 0172 set(LIBKLEO_KF5_COMPAT TRUE) 0173 configure_package_config_file( 0174 "${CMAKE_CURRENT_SOURCE_DIR}/KPimLibkleoConfig.cmake.in" 0175 "${CMAKE_CURRENT_BINARY_DIR}/KF5LibkleoConfig.cmake" 0176 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR_KF5} 0177 ) 0178 0179 install(FILES 0180 "${CMAKE_CURRENT_BINARY_DIR}/KF5LibkleoConfig.cmake" 0181 DESTINATION "${CMAKECONFIG_INSTALL_DIR_KF5}" 0182 COMPONENT Devel 0183 ) 0184 install(FILES 0185 "${CMAKE_CURRENT_BINARY_DIR}/KPim${KF_MAJOR_VERSION}LibkleoConfigVersion.cmake" 0186 RENAME "KF5LibkleoConfigVersion.cmake" 0187 DESTINATION "${CMAKECONFIG_INSTALL_DIR_KF5}" 0188 COMPONENT Devel 0189 ) 0190 install(EXPORT KPim${KF_MAJOR_VERSION}LibkleoTargets 0191 DESTINATION "${CMAKECONFIG_INSTALL_DIR_KF5}" 0192 FILE KPim${KF_MAJOR_VERSION}LibkleoTargets.cmake 0193 NAMESPACE KF5:: 0194 ) 0195 if (BUILD_QCH) 0196 install(FILES 0197 "${CMAKE_CURRENT_BINARY_DIR}/KPim${KF_MAJOR_VERSION}LibkleoQchTargets.cmake" 0198 DESTINATION "${CMAKECONFIG_INSTALL_DIR_KF5}" 0199 COMPONENT Devel 0200 ) 0201 endif() 0202 #endif() 0203 endif()