Warning, /pim/akonadi-search/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 
0005 set(PIM_VERSION "6.0.40")
0006 project(AkonadiSearch VERSION ${PIM_VERSION})
0007 
0008 # ECM setup
0009 set(KF_MIN_VERSION "5.248.0")
0010 
0011 find_package(ECM ${KF_MIN_VERSION} CONFIG REQUIRED)
0012 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
0013 
0014 include(GenerateExportHeader)
0015 include(ECMGenerateHeaders)
0016 
0017 include(CMakeDependentOption)
0018 include(ECMSetupVersion)
0019 include(FeatureSummary)
0020 include(KDEGitCommitHooks)
0021 include(KDEClangFormat)
0022 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c)
0023 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0024 
0025 include(KDEInstallDirs)
0026 include(KDECMakeSettings)
0027 include(KDECompilerSettings NO_POLICY_SCOPE)
0028 include(ECMInstallIcons)
0029 include(ECMAddTests)
0030 include(ECMQtDeclareLoggingCategory)
0031 include(ECMDeprecationSettings)
0032 include(ECMFeatureSummary)
0033 include(ECMAddQch)
0034 
0035 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF)
0036 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)")
0037 
0038 
0039 cmake_dependent_option(
0040     AKONADISEARCH_ENABLE_KRUNNER_RUNNER
0041     "Build KRunner runner to search contacts" ON
0042     "NOT WIN32" OFF
0043 )
0044 
0045 set(AKONADISEARCH_VERSION ${PIM_VERSION})
0046 
0047 set(AKONADI_VERSION "6.0.40")
0048 set(AKONADI_MIMELIB_VERSION "6.0.40")
0049 set(KMIME_LIB_VERSION "6.0.40")
0050 set(QT_REQUIRED_VERSION "6.6.0")
0051 set(KPIM_MIME_VERSION "6.0.40")
0052 set(KTEXTADDONS_MIN_VERSION "1.5.3")
0053 
0054 find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Core Test)
0055 find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS I18n Config Crash DBusAddons KCMUtils KIO)
0056 if (AKONADISEARCH_ENABLE_KRUNNER_RUNNER)
0057     find_package(KF6Runner ${KF_MIN_VERSION} REQUIRED)
0058 endif()
0059 
0060 find_package(Xapian CONFIG)
0061 set_package_properties(Xapian PROPERTIES
0062     DESCRIPTION "The Xapian search engine library"
0063     URL "https://xapian.org"
0064     TYPE REQUIRED
0065 )
0066 
0067 find_package(KPim6Akonadi ${AKONADI_VERSION} CONFIG REQUIRED)
0068 find_package(KF6Contacts ${KF_MIN_VERSION} CONFIG REQUIRED)
0069 find_package(KPim6Mime ${KPIM_MIME_VERSION} CONFIG REQUIRED)
0070 find_package(KPim6AkonadiMime ${AKONADI_MIMELIB_VERSION} CONFIG REQUIRED)
0071 find_package(KF6CalendarCore ${KF_MIN_VERSION} CONFIG REQUIRED)
0072 find_package(KF6TextUtils ${KTEXTADDONS_MIN_VERSION} CONFIG REQUIRED)
0073 
0074 find_package(Corrosion)
0075 set_package_properties(Corrosion PROPERTIES
0076     PURPOSE "Required for safe parsing of html emails"
0077     DESCRIPTION "CMake scripts to seamlessly build and link to targets using cargo"
0078     URL https://github.com/corrosion-rs/corrosion
0079 )
0080 
0081 ecm_setup_version(PROJECT
0082     VARIABLE_PREFIX AKONADISEARCH
0083     VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/akonadi_search_version.h"
0084     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KPim6AkonadiSearchConfigVersion.cmake"
0085     SOVERSION 6
0086 )
0087 option(KDEPIM_RUN_AKONADI_TEST "Enable autotest based on Akonadi." TRUE)
0088 
0089 # Compiler flags
0090 add_definitions(-DTRANSLATION_DOMAIN=\"akonadi_search\")
0091 add_definitions(-DQT_NO_CONTEXTLESS_CONNECT)
0092 ecm_set_disabled_deprecation_versions(QT 6.6.0 KF 5.249.0)
0093 
0094 
0095 
0096 option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF)
0097 
0098 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF)
0099 if (USE_UNITY_CMAKE_SUPPORT)
0100     set(COMPILE_WITH_UNITY_CMAKE_SUPPORT ON)
0101     add_definitions(-DCOMPILE_WITH_UNITY_CMAKE_SUPPORT)
0102 endif()
0103 
0104 
0105 # Turn exceptions on
0106 kde_enable_exceptions()
0107 
0108 include_directories(
0109   ${XAPIAN_INCLUDE_DIR}
0110   ${CMAKE_SOURCE_DIR}
0111   ${CMAKE_SOURCE_DIR}/core
0112   ${CMAKE_BINARY_DIR}/core
0113   ${CMAKE_SOURCE_DIR}/xapian
0114   ${CMAKE_BINARY_DIR}/xapian
0115 )
0116 # Config files
0117 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KPim6AkonadiSearch")
0118 # Targets
0119 add_subdirectory(xapian)
0120 add_subdirectory(core)
0121 add_subdirectory(agent)
0122 add_subdirectory(lib)
0123 add_subdirectory(akonadiplugin)
0124 add_subdirectory(search)
0125 add_subdirectory(debug)
0126 if (AKONADISEARCH_ENABLE_KRUNNER_RUNNER)
0127     add_subdirectory(runner)
0128 endif()
0129 
0130 if (BUILD_QCH)
0131     ecm_install_qch_export(
0132         TARGETS KPim6AkonadiSearchPIM_QCH
0133         FILE KPim6AkonadiSearchPIMQchTargets.cmake
0134         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0135         COMPONENT Devel
0136     )
0137     set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KPim6AkonadiSearchPIMQchTargets.cmake\")")
0138 endif()
0139 
0140 configure_package_config_file(
0141     "${CMAKE_CURRENT_SOURCE_DIR}/KPimAkonadiSearchConfig.cmake.in"
0142     "${CMAKE_CURRENT_BINARY_DIR}/KPim6AkonadiSearchConfig.cmake"
0143     INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0144 )
0145 
0146 install(FILES
0147     "${CMAKE_CURRENT_BINARY_DIR}/KPim6AkonadiSearchConfig.cmake"
0148     "${CMAKE_CURRENT_BINARY_DIR}/KPim6AkonadiSearchConfigVersion.cmake"
0149     DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0150     COMPONENT devel
0151 )
0152 
0153 install(EXPORT KPim6AkonadiSearchTargets
0154         NAMESPACE KPim6::
0155         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0156         FILE KPim6AkonadiSearchTargets.cmake)
0157 
0158 install(FILES
0159     "${CMAKE_CURRENT_BINARY_DIR}/akonadi_search_version.h"
0160     DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPim6/AkonadiSearch
0161     COMPONENT Devel
0162 )
0163 
0164 ecm_qt_install_logging_categories(
0165         EXPORT AKONADISEARCH
0166         FILE akonadi-search.categories
0167         DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0168         )
0169 
0170 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0171 
0172 ki18n_install(po)
0173 ecm_feature_summary(WHAT ALL
0174     INCLUDE_QUIET_PACKAGES
0175     FATAL_ON_MISSING_REQUIRED_PACKAGES
0176 )
0177