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.40")
0005 
0006 project(kdepim-addons VERSION ${PIM_VERSION})
0007 
0008 set(KF_MIN_VERSION "5.248.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 alpha)
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 include(ECMFeatureSummary)
0049 set(KTEXTADDONS_MIN_VERSION "1.5.3")
0050 
0051 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)
0052 
0053 
0054 find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED WebEngineWidgets Widgets Test)
0055 
0056 find_package(KF6I18n ${KF_MIN_VERSION} CONFIG REQUIRED)
0057 find_package(KF6Config ${KF_MIN_VERSION} CONFIG REQUIRED)
0058 find_package(KF6DBusAddons ${KF_MIN_VERSION} CONFIG REQUIRED)
0059 find_package(KF6XmlGui ${KF_MIN_VERSION} CONFIG REQUIRED)
0060 find_package(KF6Declarative ${KF_MIN_VERSION} CONFIG REQUIRED)
0061 find_package(KF6SyntaxHighlighting ${KF_MIN_VERSION} CONFIG REQUIRED)
0062 find_package(KF6KIO ${KF_MIN_VERSION} CONFIG REQUIRED)
0063 find_package(KF6IconThemes ${KF_MIN_VERSION} CONFIG REQUIRED)
0064 find_package(KF6Parts ${KF_MIN_VERSION} CONFIG REQUIRED)
0065 find_package(KF6Prison ${KF_MIN_VERSION} CONFIG REQUIRED)
0066 find_package(KF6Holidays ${KF_MIN_VERSION} CONFIG REQUIRED)
0067 find_package(KF6GuiAddons ${KF_MIN_VERSION} CONFIG REQUIRED)
0068 
0069 set(MAILCOMMON_LIB_VERSION "6.0.40")
0070 set(GRAVATAR_LIB_VERSION "6.0.40")
0071 set(PIMCOMMON_LIB_VERSION "6.0.40")
0072 set(GRANTLEETHEME_LIB_VERSION "6.0.40")
0073 set(CALENDARSUPPORT_LIB_VERSION "6.0.40")
0074 set(EVENTVIEW_LIB_VERSION "6.0.40")
0075 set(LIBKDEPIM_LIB_VERSION "6.0.40")
0076 set(KADDRESSBOOK_IMPORTEXPORT_LIB_VERSION "6.0.40")
0077 set(LIBKLEO_LIB_VERSION "6.0.40")
0078 set(AKONADI_LIB_VERSION "6.0.40")
0079 set(INCIDENCEEDITOR_LIB_VERSION "6.0.40")
0080 set(KTNEF_LIB_VERSION "6.0.40")
0081 set(MESSAGELIB_LIB_VERSION "6.0.40")
0082 set(AKONADICALENDAR_LIB_VERSION "6.0.40")
0083 set(CALENDAR_UTILS_VERSION "6.0.40")
0084 set(KPIMTEXTEDIT_LIB_VERSION "6.0.40")
0085 set(KIMAP_LIB_VERSION "6.0.40")
0086 set(LIBKSIEVE_LIB_VERSION "6.0.40")
0087 set(KMAILTRANSPORT_LIB_VERSION "6.0.40")
0088 set(AKONADICONTACT_LIB_VERSION "6.0.40")
0089 set(IMPORTWIZARD_LIB_VERSION "6.0.40")
0090 set(MAILIMPORTER_LIB_VERSION "6.0.40")
0091 set(KPIMPKPASS_LIB_VERSION "6.0.40")
0092 set(KPIMITINERARY_LIB_VERSION "6.0.40")
0093 set(AKONADINOTES_LIB_VERSION "6.0.40")
0094 set(KPIM_MIME_VERSION "6.0.40")
0095 
0096 set(KLLMCORE_VERSION "0.1.0")
0097 find_package(KPim6Mime ${KPIM_MIME_VERSION} CONFIG REQUIRED)
0098 find_package(KPim6AkonadiNotes ${AKONADINOTES_LIB_VERSION} CONFIG REQUIRED)
0099 find_package(KF6CalendarCore ${KF_MIN_VERSION} CONFIG REQUIRED)
0100 find_package(KPim6CalendarUtils ${CALENDAR_UTILS_VERSION} CONFIG REQUIRED)
0101 find_package(KPim6WebEngineViewer ${MESSAGELIB_LIB_VERSION} CONFIG REQUIRED)
0102 find_package(KPim6TemplateParser ${MESSAGELIB_LIB_VERSION} CONFIG REQUIRED)
0103 find_package(KPim6MailCommon ${MAILCOMMON_LIB_VERSION} CONFIG REQUIRED)
0104 find_package(KPim6MessageViewer ${MESSAGELIB_LIB_VERSION} CONFIG REQUIRED)
0105 find_package(KPim6AddressbookImportExport ${KADDRESSBOOK_IMPORTEXPORT_LIB_VERSION} CONFIG REQUIRED)
0106 find_package(KPim6Libkleo ${LIBKLEO_LIB_VERSION} CONFIG REQUIRED)
0107 find_package(KPim6GrantleeTheme ${GRANTLEETHEME_LIB_VERSION} CONFIG REQUIRED)
0108 find_package(KPim6PimCommonAkonadi ${PIMCOMMON_LIB_VERSION} CONFIG REQUIRED)
0109 find_package(KF6TextGrammarCheck ${KTEXTADDONS_MIN_VERSION} CONFIG REQUIRED)
0110 find_package(KF6TextTranslator ${KTEXTADDONS_MIN_VERSION} CONFIG REQUIRED)
0111 find_package(KF6TextAddonsWidgets ${KTEXTADDONS_MIN_VERSION} CONFIG REQUIRED)
0112 find_package(KF6TextUtils ${KTEXTADDONS_MIN_VERSION} CONFIG REQUIRED)
0113 find_package(KPim6Libkdepim ${LIBKDEPIM_LIB_VERSION} CONFIG REQUIRED)
0114 find_package(KPim6IncidenceEditor ${INCIDENCEEDITOR_LIB_VERSION} CONFIG REQUIRED)
0115 find_package(KPim6MessageCore ${MESSAGELIB_LIB_VERSION} CONFIG REQUIRED)
0116 find_package(KPim6MessageComposer ${MESSAGELIB_LIB_VERSION} CONFIG REQUIRED)
0117 find_package(KPim6MessageList ${MESSAGELIB_LIB_VERSION} CONFIG REQUIRED)
0118 find_package(KPim6CalendarSupport ${CALENDARSUPPORT_LIB_VERSION} CONFIG REQUIRED)
0119 find_package(KPim6EventViews ${EVENTVIEW_LIB_VERSION} CONFIG REQUIRED)
0120 find_package(KPim6Akonadi ${AKONADI_LIB_VERSION} CONFIG REQUIRED)
0121 find_package(KPim6AkonadiCalendar ${AKONADICALENDAR_LIB_VERSION} CONFIG REQUIRED)
0122 find_package(KPim6Gravatar ${GRAVATAR_LIB_VERSION} CONFIG REQUIRED)
0123 find_package(KPim6TextEdit ${KPIMTEXTEDIT_LIB_VERSION} CONFIG REQUIRED)
0124 find_package(KPim6IdentityManagementCore ${KIDENTITYMANAGEMENT_LIB_VERSION} CONFIG REQUIRED)
0125 find_package(KPim6IMAP ${KIMAP_LIB_VERSION} CONFIG REQUIRED)
0126 find_package(KPim6KSieveUi ${LIBKSIEVE_LIB_VERSION} CONFIG REQUIRED)
0127 find_package(KF6TextCustomEditor ${KTEXTADDONS_MIN_VERSION} CONFIG REQUIRED)
0128 
0129 find_package(KPim6Tnef ${KTNEF_LIB_VERSION} CONFIG REQUIRED)
0130 find_package(KPim6MailTransport ${KMAILTRANSPORT_LIB_VERSION} CONFIG REQUIRED)
0131 find_package(KF6Contacts ${KF_MIN_VERSION} CONFIG REQUIRED)
0132 find_package(KPim6AkonadiContactWidgets ${AKONADICONTACT_LIB_VERSION} CONFIG REQUIRED)
0133 find_package(KPim6ImportWizard ${IMPORTWIZARD_LIB_VERSION} CONFIG)
0134 find_package(KPim6MailImporterAkonadi ${MAILIMPORTER_LIB_VERSION} CONFIG REQUIRED)
0135 find_package(KPim6PkPass ${KPIMPKPASS_LIB_VERSION} CONFIG REQUIRED)
0136 find_package(KPim6Itinerary ${KPIMITINERARY_LIB_VERSION} CONFIG REQUIRED)
0137 
0138 find_package(KF6TextTemplate CONFIG REQUIRED)
0139 
0140 find_package(KLLMCore ${KLLMCORE_VERSION})
0141 set_package_properties(KLLMCore PROPERTIES
0142     TYPE OPTIONAL
0143     PURPOSE "Required for building IA plugins support"
0144     DESCRIPTION "Use local IA plugin"
0145     URL https://invent.kde.org/utilities/alpaka
0146 )
0147 
0148 # For adblocker
0149 find_package(Corrosion)
0150 set_package_properties(Corrosion PROPERTIES
0151     TYPE RECOMMENDED
0152     PURPOSE "Required to build the builtin adblocker"
0153     DESCRIPTION "CMake scripts to seamlessly build and link to targets using cargo"
0154     URL https://github.com/corrosion-rs/corrosion
0155 )
0156 
0157 if(BUILD_TESTING)
0158    add_definitions(-DBUILD_TESTING)
0159 endif(BUILD_TESTING)
0160 
0161 if(KDEPIM_ENTERPRISE_BUILD)
0162   set(KDEPIM_ENTERPRISE_BUILD true)
0163 else()
0164   set(KDEPIM_ENTERPRISE_BUILD false)
0165 endif()
0166 
0167 # Extra package
0168 find_package(Gpgmepp 1.16.0 CONFIG)
0169 set_package_properties(Gpgmepp PROPERTIES DESCRIPTION "GpgME library" URL "https://www.gnupg.org" TYPE REQUIRED)
0170 ecm_set_disabled_deprecation_versions(QT 6.6.0 KF 5.249.0)
0171 
0172 option(KDEPIM_RUN_AKONADI_TEST "Enable autotest based on Akonadi." TRUE)
0173 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
0174 
0175 set(QTCREATOR_TEMPLATE_INSTALL_DIR ${KDE_INSTALL_DATADIR}/qtcreator/templates CACHE PATH "Define qtcreator template install path (default is /usr/share/qtcreator/templates)")
0176 
0177 find_package(Discount "2")
0178 set_package_properties("discount" PROPERTIES
0179         DESCRIPTION "A library that gives you formatting functions suitable for marking down entire documents or lines of text"
0180         URL "https://www.pell.portland.or.us/~orc/Code/discount/"
0181         TYPE RECOMMENDED
0182         PURPOSE "Generate Markdown file.")
0183 
0184 if(discount_FOUND)
0185    if (${PC_LIBMARKDOWN_VERSION})
0186       if (${PC_LIBMARKDOWN_VERSION} VERSION_GREATER "2.2.5")
0187            set(DISCOUNT_HAS_HIGHLIGHTING_SUPPORT TRUE)
0188            MESSAGE(STATUS "Discount ${PC_LIBMARKDOWN_VERSION}: has highlighting support")
0189       endif()
0190    endif()
0191 endif()
0192 
0193 option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF)
0194 
0195 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF)
0196 if (USE_UNITY_CMAKE_SUPPORT)
0197     set(COMPILE_WITH_UNITY_CMAKE_SUPPORT ON)
0198     add_definitions(-DCOMPILE_WITH_UNITY_CMAKE_SUPPORT)
0199 endif()
0200 
0201 option(BUILD_SCAM_SETTINGS_PLUGINS "Build scam settings plugins (In progress)" OFF)
0202 
0203 add_subdirectory(plugins)
0204 add_subdirectory(korganizer)
0205 add_subdirectory(kmail)
0206 add_subdirectory(kaddressbook)
0207 add_subdirectory(sieveeditor)
0208 add_subdirectory(kmailtransport)
0209 if (TARGET KPim6::ImportWizard)
0210   add_subdirectory(akonadi-import-wizard)
0211 endif()
0212 
0213 ecm_qt_install_logging_categories(
0214     EXPORT KDEPIMADDONS
0215     FILE kdepim-addons.categories
0216     DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0217     )
0218 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0219 ki18n_install(po)
0220 ecm_feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)