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

0001 # SPDX-FileCopyrightText: none
0002 # SPDX-License-Identifier: BSD-3-Clause
0003 cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
0004 set(PIM_VERSION "6.0.0")
0005 
0006 project(kdepim-addons VERSION ${PIM_VERSION})
0007 
0008 set(KF_MIN_VERSION "5.246.0")
0009 set(QT_REQUIRED_VERSION "6.6.0")
0010 find_package(ECM ${KF_MIN_VERSION} CONFIG REQUIRED)
0011 set(CMAKE_MODULE_PATH  ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/ ${ECM_MODULE_PATH})
0012 
0013 # Do NOT add quote
0014 set(KDEPIM_DEV_VERSION)
0015 
0016 # add an extra space
0017 if(DEFINED KDEPIM_DEV_VERSION)
0018   set(KDEPIM_DEV_VERSION " ${KDEPIM_DEV_VERSION}")
0019 endif()
0020 
0021 set(KDEPIMADDONS_VERSION_NUMBER ${PIM_VERSION})
0022 set(KDEPIMADDONS_VERSION "${KDEPIMADDONS_VERSION_NUMBER}${KDEPIM_DEV_VERSION}")
0023 
0024 set(KDEPIMADDONS_LIB_VERSION "${KDEPIMADDONS_VERSION_NUMBER}")
0025 set(KDEPIMADDONS_LIB_SOVERSION "6")
0026 
0027 include(ECMInstallIcons)
0028 include(ECMSetupVersion)
0029 include(ECMAddTests)
0030 
0031 include(GenerateExportHeader)
0032 include(ECMGenerateHeaders)
0033 
0034 include(FeatureSummary)
0035 include(KDEGitCommitHooks)
0036 include(KDEClangFormat)
0037 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c)
0038 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0039 include(CheckFunctionExists)
0040 
0041 
0042 include(KDEInstallDirs)
0043 include(KDECMakeSettings)
0044 include(KDECompilerSettings NO_POLICY_SCOPE)
0045 include(ECMAddAppIcon)
0046 include(ECMQtDeclareLoggingCategory)
0047 include(ECMDeprecationSettings)
0048 set(KTEXTADDONS_MIN_VERSION "1.5.2")
0049 
0050 option(KDEPIM_ENTERPRISE_BUILD "Enable features specific to the enterprise branch, which are normally disabled. Also, it disables many components not needed for Kontact such as the Kolab client." FALSE)
0051 
0052 
0053 find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED WebEngineWidgets Widgets Test)
0054 
0055 find_package(KF6I18n ${KF_MIN_VERSION} CONFIG REQUIRED)
0056 find_package(KF6Config ${KF_MIN_VERSION} CONFIG REQUIRED)
0057 find_package(KF6DBusAddons ${KF_MIN_VERSION} CONFIG REQUIRED)
0058 find_package(KF6XmlGui ${KF_MIN_VERSION} CONFIG REQUIRED)
0059 find_package(KF6Declarative ${KF_MIN_VERSION} CONFIG REQUIRED)
0060 find_package(KF6SyntaxHighlighting ${KF_MIN_VERSION} CONFIG REQUIRED)
0061 find_package(KF6KIO ${KF_MIN_VERSION} CONFIG REQUIRED)
0062 find_package(KF6IconThemes ${KF_MIN_VERSION} CONFIG REQUIRED)
0063 find_package(KF6Parts ${KF_MIN_VERSION} CONFIG REQUIRED)
0064 find_package(KF6Prison ${KF_MIN_VERSION} CONFIG REQUIRED)
0065 find_package(KF6Holidays ${KF_MIN_VERSION} CONFIG REQUIRED)
0066 find_package(KF6GuiAddons ${KF_MIN_VERSION} CONFIG REQUIRED)
0067 
0068 set(MAILCOMMON_LIB_VERSION "6.0.0")
0069 set(GRAVATAR_LIB_VERSION "6.0.0")
0070 set(PIMCOMMON_LIB_VERSION "6.0.0")
0071 set(GRANTLEETHEME_LIB_VERSION "6.0.0")
0072 set(CALENDARSUPPORT_LIB_VERSION "6.0.0")
0073 set(EVENTVIEW_LIB_VERSION "6.0.0")
0074 set(LIBKDEPIM_LIB_VERSION "6.0.0")
0075 set(KADDRESSBOOK_IMPORTEXPORT_LIB_VERSION "6.0.0")
0076 set(LIBKLEO_LIB_VERSION "6.0.0")
0077 set(AKONADI_LIB_VERSION "6.0.0")
0078 set(INCIDENCEEDITOR_LIB_VERSION "6.0.0")
0079 set(KTNEF_LIB_VERSION "6.0.0")
0080 set(MESSAGELIB_LIB_VERSION "6.0.0")
0081 set(AKONADICALENDAR_LIB_VERSION "6.0.0")
0082 set(CALENDAR_UTILS_VERSION "6.0.0")
0083 set(KPIMTEXTEDIT_LIB_VERSION "6.0.0")
0084 set(KIMAP_LIB_VERSION "6.0.0")
0085 set(LIBKSIEVE_LIB_VERSION "6.0.0")
0086 set(KMAILTRANSPORT_LIB_VERSION "6.0.0")
0087 set(AKONADICONTACT_LIB_VERSION "6.0.0")
0088 set(IMPORTWIZARD_LIB_VERSION "6.0.0")
0089 set(MAILIMPORTER_LIB_VERSION "6.0.0")
0090 set(KPIMPKPASS_LIB_VERSION "6.0.0")
0091 set(KPIMITINERARY_LIB_VERSION "6.0.0")
0092 set(AKONADINOTES_LIB_VERSION "6.0.0")
0093 set(KPIM_MIME_VERSION "6.0.0")
0094 
0095 set(KLLMCORE_VERSION "0.1.0")
0096 find_package(KPim6Mime ${KPIM_MIME_VERSION} CONFIG REQUIRED)
0097 find_package(KPim6AkonadiNotes ${AKONADINOTES_LIB_VERSION} CONFIG REQUIRED)
0098 find_package(KF6CalendarCore ${KF_MIN_VERSION} CONFIG REQUIRED)
0099 find_package(KPim6CalendarUtils ${CALENDAR_UTILS_VERSION} CONFIG REQUIRED)
0100 find_package(KPim6WebEngineViewer ${MESSAGELIB_LIB_VERSION} CONFIG REQUIRED)
0101 find_package(KPim6TemplateParser ${MESSAGELIB_LIB_VERSION} CONFIG REQUIRED)
0102 find_package(KPim6MailCommon ${MAILCOMMON_LIB_VERSION} CONFIG REQUIRED)
0103 find_package(KPim6MessageViewer ${MESSAGELIB_LIB_VERSION} CONFIG REQUIRED)
0104 find_package(KPim6AddressbookImportExport ${KADDRESSBOOK_IMPORTEXPORT_LIB_VERSION} CONFIG REQUIRED)
0105 find_package(KPim6Libkleo ${LIBKLEO_LIB_VERSION} CONFIG REQUIRED)
0106 find_package(KPim6GrantleeTheme ${GRANTLEETHEME_LIB_VERSION} CONFIG REQUIRED)
0107 find_package(KPim6PimCommonAkonadi ${PIMCOMMON_LIB_VERSION} CONFIG REQUIRED)
0108 find_package(KF6TextGrammarCheck ${KTEXTADDONS_MIN_VERSION} CONFIG REQUIRED)
0109 find_package(KF6TextTranslator ${KTEXTADDONS_MIN_VERSION} CONFIG REQUIRED)
0110 find_package(KF6TextAddonsWidgets ${KTEXTADDONS_MIN_VERSION} CONFIG REQUIRED)
0111 find_package(KF6TextUtils ${KTEXTADDONS_MIN_VERSION} CONFIG REQUIRED)
0112 find_package(KPim6Libkdepim ${LIBKDEPIM_LIB_VERSION} CONFIG REQUIRED)
0113 find_package(KPim6IncidenceEditor ${INCIDENCEEDITOR_LIB_VERSION} CONFIG REQUIRED)
0114 find_package(KPim6MessageCore ${MESSAGELIB_LIB_VERSION} CONFIG REQUIRED)
0115 find_package(KPim6MessageComposer ${MESSAGELIB_LIB_VERSION} CONFIG REQUIRED)
0116 find_package(KPim6MessageList ${MESSAGELIB_LIB_VERSION} CONFIG REQUIRED)
0117 find_package(KPim6CalendarSupport ${CALENDARSUPPORT_LIB_VERSION} CONFIG REQUIRED)
0118 find_package(KPim6EventViews ${EVENTVIEW_LIB_VERSION} CONFIG REQUIRED)
0119 find_package(KPim6Akonadi ${AKONADI_LIB_VERSION} CONFIG REQUIRED)
0120 find_package(KPim6AkonadiCalendar ${AKONADICALENDAR_LIB_VERSION} CONFIG REQUIRED)
0121 find_package(KPim6Gravatar ${GRAVATAR_LIB_VERSION} CONFIG REQUIRED)
0122 find_package(KPim6TextEdit ${KPIMTEXTEDIT_LIB_VERSION} CONFIG REQUIRED)
0123 find_package(KPim6IdentityManagementCore ${KIDENTITYMANAGEMENT_LIB_VERSION} CONFIG REQUIRED)
0124 find_package(KPim6IMAP ${KIMAP_LIB_VERSION} CONFIG REQUIRED)
0125 find_package(KPim6KSieveUi ${LIBKSIEVE_LIB_VERSION} CONFIG REQUIRED)
0126 find_package(KF6TextCustomEditor ${KTEXTADDONS_MIN_VERSION} CONFIG REQUIRED)
0127 
0128 find_package(KPim6Tnef ${KTNEF_LIB_VERSION} CONFIG REQUIRED)
0129 find_package(KPim6MailTransport ${KMAILTRANSPORT_LIB_VERSION} CONFIG REQUIRED)
0130 find_package(KF6Contacts ${KF_MIN_VERSION} CONFIG REQUIRED)
0131 find_package(KPim6AkonadiContactWidgets ${AKONADICONTACT_LIB_VERSION} CONFIG REQUIRED)
0132 find_package(KPim6ImportWizard ${IMPORTWIZARD_LIB_VERSION} CONFIG)
0133 find_package(KPim6MailImporterAkonadi ${MAILIMPORTER_LIB_VERSION} CONFIG REQUIRED)
0134 find_package(KPim6PkPass ${KPIMPKPASS_LIB_VERSION} CONFIG REQUIRED)
0135 find_package(KPim6Itinerary ${KPIMITINERARY_LIB_VERSION} CONFIG REQUIRED)
0136 
0137 find_package(KF6TextTemplate CONFIG REQUIRED)
0138 
0139 find_package(KLLMCore ${KLLMCORE_VERSION})
0140 set_package_properties(KLLMCore PROPERTIES
0141     TYPE OPTIONAL
0142     PURPOSE "Required for building IA plugins support"
0143     DESCRIPTION "Use local IA plugin"
0144     URL https://invent.kde.org/utilities/alpaka
0145 )
0146 
0147 # For adblocker
0148 find_package(Corrosion)
0149 set_package_properties(Corrosion PROPERTIES
0150     TYPE RECOMMENDED
0151     PURPOSE "Required to build the builtin adblocker"
0152     DESCRIPTION "CMake scripts to seamlessly build and link to targets using cargo"
0153     URL https://github.com/corrosion-rs/corrosion
0154 )
0155 
0156 if(BUILD_TESTING)
0157    add_definitions(-DBUILD_TESTING)
0158 endif(BUILD_TESTING)
0159 
0160 if(KDEPIM_ENTERPRISE_BUILD)
0161   set(KDEPIM_ENTERPRISE_BUILD true)
0162 else()
0163   set(KDEPIM_ENTERPRISE_BUILD false)
0164 endif()
0165 
0166 # Extra package
0167 find_package(Gpgmepp 1.16.0 CONFIG)
0168 set_package_properties(Gpgmepp PROPERTIES DESCRIPTION "GpgME library" URL "https://www.gnupg.org" TYPE REQUIRED)
0169 ecm_set_disabled_deprecation_versions(QT 6.6.0 KF 5.248.0)
0170 
0171 option(KDEPIM_RUN_AKONADI_TEST "Enable autotest based on Akonadi." TRUE)
0172 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
0173 
0174 set(QTCREATOR_TEMPLATE_INSTALL_DIR ${KDE_INSTALL_DATADIR}/qtcreator/templates CACHE PATH "Define qtcreator template install path (default is /usr/share/qtcreator/templates)")
0175 
0176 find_package(Discount "2")
0177 set_package_properties("discount" PROPERTIES
0178         DESCRIPTION "A library that gives you formatting functions suitable for marking down entire documents or lines of text"
0179         URL "https://www.pell.portland.or.us/~orc/Code/discount/"
0180         TYPE RECOMMENDED
0181         PURPOSE "Generate Markdown file.")
0182 
0183 if(discount_FOUND)
0184    if (${PC_LIBMARKDOWN_VERSION})
0185       if (${PC_LIBMARKDOWN_VERSION} VERSION_GREATER "2.2.5")
0186            set(DISCOUNT_HAS_HIGHLIGHTING_SUPPORT TRUE)
0187            MESSAGE(STATUS "Discount ${PC_LIBMARKDOWN_VERSION}: has highlighting support")
0188       endif()
0189    endif()
0190 endif()
0191 
0192 option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF)
0193 
0194 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF)
0195 if (USE_UNITY_CMAKE_SUPPORT)
0196     set(COMPILE_WITH_UNITY_CMAKE_SUPPORT ON)
0197     add_definitions(-DCOMPILE_WITH_UNITY_CMAKE_SUPPORT)
0198 endif()
0199 
0200 option(BUILD_SCAM_SETTINGS_PLUGINS "Build scam settings plugins (In progress)" OFF)
0201 
0202 add_subdirectory(plugins)
0203 add_subdirectory(korganizer)
0204 add_subdirectory(kmail)
0205 add_subdirectory(kaddressbook)
0206 add_subdirectory(sieveeditor)
0207 add_subdirectory(kmailtransport)
0208 if (TARGET KPim6::ImportWizard)
0209   add_subdirectory(akonadi-import-wizard)
0210 endif()
0211 
0212 ecm_qt_install_logging_categories(
0213     EXPORT KDEPIMADDONS
0214     FILE kdepim-addons.categories
0215     DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0216     )
0217 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0218 ki18n_install(po)
0219 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)