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