Warning, /pim/mimetreeparser/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: 2023 Carl Schwan <carl.schwan@gnupg.com>
0002 # SPDX-License-Identifier: BSD-3-Clause
0003 
0004 cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
0005 
0006 set(PIM_VERSION "6.0.40")
0007 project(MimeTreeParserNG VERSION ${PIM_VERSION})
0008 
0009 # ECM setup
0010 set(KF_MIN_VERSION "5.248.0")
0011 find_package(ECM ${KF_MIN_VERSION} CONFIG REQUIRED)
0012 set(CMAKE_MODULE_PATH
0013     ${CMAKE_MODULE_PATH}
0014     ${ECM_MODULE_PATH}
0015     ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules
0016 )
0017 set(QT_REQUIRED_VERSION "6.6.0")
0018 
0019 include(KDEInstallDirs)
0020 include(KDECMakeSettings)
0021 include(KDECompilerSettings NO_POLICY_SCOPE)
0022 
0023 include(GenerateExportHeader)
0024 include(ECMGenerateHeaders)
0025 include(ECMGeneratePriFile)
0026 
0027 include(ECMQmlModule)
0028 include(ECMSetupVersion)
0029 include(FeatureSummary)
0030 include(KDEGitCommitHooks)
0031 include(KDEClangFormat)
0032 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c)
0033 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0034 
0035 include(ECMQtDeclareLoggingCategory)
0036 include(ECMDeprecationSettings)
0037 include(ECMFeatureSummary)
0038 include(ECMAddQch)
0039 include(ECMAddTests)
0040 
0041 set(KPIM_MIME_VERSION "6.0.40")
0042 set(KPIM_LIBKLEO_VERSION "6.0.40")
0043 set(KPIM_MBOX_VERSION "6.0.40")
0044 set(GPGME_REQUIRED_VERSION "1.16.0")
0045 
0046 ecm_setup_version(PROJECT
0047     VARIABLE_PREFIX MIMETREEPARSERNG
0048     VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/mimetreeparserng_version.h"
0049     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KPim6MimeTreeParserCoreConfigVersion.cmake"
0050     SOVERSION 6
0051 )
0052 
0053 configure_file(mimetreeparserng-version.h.in ${CMAKE_CURRENT_BINARY_DIR}/src/mimetreeparserng-version.h @ONLY)
0054 
0055 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF)
0056 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)")
0057 
0058 if(BUILD_TESTING)
0059    add_definitions(-DBUILD_TESTING)
0060 endif()
0061 
0062 ########### Find packages ###########
0063 find_package(Qt6Gui ${QT_MIN_VERSION} CONFIG REQUIRED)
0064 find_package(Qt6PrintSupport ${QT_MIN_VERSION} CONFIG REQUIRED)
0065 find_package(KF6I18n ${KF_MIN_VERSION} CONFIG REQUIRED)
0066 find_package(KF6Codecs ${KF_MIN_VERSION} CONFIG REQUIRED)
0067 find_package(KF6CalendarCore ${KF_MIN_VERSION} CONFIG REQUIRED)
0068 find_package(KF6WidgetsAddons ${QT_MIN_VERSION} CONFIG)
0069 find_package(KPim6Mime ${KPIM_MIME_VERSION} CONFIG REQUIRED)
0070 find_package(KPim6Mbox ${KPIM_MBOX_VERSION} CONFIG REQUIRED)
0071 find_package(KPim6Libkleo ${KPIM_LIBKLEO_VERSION} CONFIG REQUIRED)
0072 find_package(Gpgmepp ${GPGME_REQUIRED_VERSION} CONFIG REQUIRED)
0073 
0074 find_package(Qt6Quick ${QT_MIN_VERSION} CONFIG)
0075 find_package(Qt6Widgets ${QT_MIN_VERSION} CONFIG)
0076 
0077 if (BUILD_TESTING)
0078     find_package(Qt6Test ${QT_MIN_VERSION} CONFIG REQUIRED)
0079 endif()
0080 
0081 ########### Targets ###########
0082 
0083 add_definitions(-DQT_NO_CONTEXTLESS_CONNECT)
0084 ecm_set_disabled_deprecation_versions(QT 6.6.0 KF 5.249.0)
0085 
0086 option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF)
0087 
0088 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF)
0089 if (USE_UNITY_CMAKE_SUPPORT)
0090     set(COMPILE_WITH_UNITY_CMAKE_SUPPORT ON)
0091     add_definitions(-DCOMPILE_WITH_UNITY_CMAKE_SUPPORT)
0092 endif()
0093 
0094 add_subdirectory(src)
0095 if (BUILD_TESTING)
0096     add_subdirectory(examples)
0097     add_subdirectory(autotests)
0098 endif()
0099 
0100 install(FILES
0101    ${CMAKE_CURRENT_BINARY_DIR}/mimetreeparserng_version.h
0102    DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPim6/MimeTreeParserCore
0103    COMPONENT Devel
0104 )
0105 ecm_qt_install_logging_categories(
0106     EXPORT MIMETREEPARSERNG
0107     FILE mimetreeparser2.categories
0108     DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0109 )
0110 
0111 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0112 ki18n_install(po)
0113 ecm_feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)