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

0001 cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
0002 set(PIM_VERSION "6.0.40")
0003 set(KDEPIM_RUNTIME_VERSION_NUMBER ${PIM_VERSION})
0004 project(kdepim-runtime VERSION ${KDEPIM_RUNTIME_VERSION_NUMBER})
0005 
0006 set(KDEPIM_DEV_VERSION alpha)
0007 set(RELEASE_SERVICE_VERSION "24.04.40")
0008 
0009 # add an extra space
0010 if(DEFINED KDEPIM_DEV_VERSION)
0011     set(KDEPIM_DEV_VERSION " ${KDEPIM_DEV_VERSION}")
0012 endif()
0013 
0014 set(KDEPIM_RUNTIME_VERSION "${KDEPIM_RUNTIME_VERSION_NUMBER}${KDEPIM_DEV_VERSION} (${RELEASE_SERVICE_VERSION})")
0015 
0016 configure_file(kdepim-runtime-version.h.in ${CMAKE_CURRENT_BINARY_DIR}/kdepim-runtime-version.h @ONLY)
0017 
0018 set(KF_MIN_VERSION "5.248.0")
0019 
0020 find_package(ECM ${KF_MIN_VERSION} CONFIG REQUIRED)
0021 set(CMAKE_MODULE_PATH ${kdepim-runtime_SOURCE_DIR}/cmake/ ${ECM_MODULE_PATH})
0022 
0023 include(KDEInstallDirs)
0024 include(KDECMakeSettings)
0025 include(KDECompilerSettings NO_POLICY_SCOPE)
0026 
0027 include(ECMSetupVersion)
0028 include(FeatureSummary)
0029 include(KDEGitCommitHooks)
0030 include(KDEClangFormat)
0031 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c)
0032 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0033 include(ECMInstallIcons)
0034 include(ECMQtDeclareLoggingCategory)
0035 include(ECMDeprecationSettings)
0036 include(ECMFeatureSummary)
0037 include(GenerateExportHeader)
0038 
0039 set(QT_REQUIRED_VERSION "6.6.0")
0040 
0041 set(KDEPIMRUNTIME_LIB_VERSION "${KDEPIM_RUNTIME_VERSION_NUMBER}")
0042 set(KDEPIMRUNTIME_LIB_SOVERSION "6")
0043 set(AKONADI_VERSION "6.0.40")
0044 
0045 set(IDENTITYMANAGEMENT_LIB_VERSION "6.0.40")
0046 set(KMAILTRANSPORT_LIB_VERSION "6.0.40")
0047 set(CALENDARUTILS_LIB_VERSION "6.0.40")
0048 set(KIMAP_LIB_VERSION "6.0.40")
0049 set(KMBOX_LIB_VERSION "6.0.40")
0050 set(AKONADICALENDAR_LIB_VERSION "6.0.40")
0051 set(KMIME_LIB_VERSION "6.0.40")
0052 set(AKONADIMIME_LIB_VERSION "6.0.40")
0053 set(AKONADICONTACT_LIB_VERSION "6.0.40")
0054 set(AKONADINOTE_LIB_VERSION "6.0.40")
0055 set(KGAPI_LIB_VERSION "6.0.40")
0056 set(KLDAP_LIB_VERSION "6.0.40")
0057 set(KTEXTADDONS_MIN_VERSION "1.5.3")
0058 
0059 set( SharedMimeInfo_MINIMUM_VERSION "1.3" )
0060 find_package(SharedMimeInfo ${SharedMimeInfo_MINIMUM_VERSION} REQUIRED)
0061 
0062 find_package(Sasl2)
0063 set_package_properties(Sasl2 PROPERTIES TYPE REQUIRED)
0064 
0065 find_package(Qca-qt6 2.3.7 CONFIG REQUIRED)
0066 set_package_properties(Qca-qt6 PROPERTIES DESCRIPTION "Qt Cryptographic Architecture"
0067                    URL "https://invent.kde.org/libraries/qca" TYPE REQUIRED
0068                    PURPOSE "Needed for ews resource.")
0069 option(KDEPIM_RUN_AKONADI_TEST "Enable autotest based on Akonadi." TRUE)
0070 # QT5 package
0071 find_package(Qt6TextToSpeech ${QT_REQUIRED_VERSION} CONFIG)
0072 set_package_properties(Qt6TextToSpeech PROPERTIES DESCRIPTION
0073     "Add support for texttospeech"
0074     TYPE OPTIONAL
0075 )
0076 if(Qt6TextToSpeech_FOUND)
0077 set(HAVE_TEXT_TO_SPEECH_SUPPORT TRUE)
0078 endif()
0079 find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Network Widgets Test DBus NetworkAuth)
0080 find_package(Qt6WebEngineWidgets ${QT_REQUIRED_VERSION} CONFIG)
0081 
0082 # KF6 package
0083 find_package(KF6Config ${KF_MIN_VERSION} CONFIG REQUIRED)
0084 find_package(KF6ConfigWidgets ${KF_MIN_VERSION} CONFIG REQUIRED)
0085 find_package(KF6NotifyConfig ${KF_MIN_VERSION} CONFIG REQUIRED)
0086 find_package(KF6KIO ${KF_MIN_VERSION} CONFIG REQUIRED)
0087 find_package(KF6ItemModels ${KF_MIN_VERSION} CONFIG REQUIRED)
0088 find_package(KF6Codecs ${KF_MIN_VERSION} CONFIG REQUIRED)
0089 find_package(KF6WindowSystem ${KF_MIN_VERSION} CONFIG REQUIRED)
0090 find_package(KF6TextWidgets ${KF_MIN_VERSION} CONFIG REQUIRED) # for KPluralHandlingSpinBox
0091 find_package(KF6Notifications ${KF_MIN_VERSION} CONFIG REQUIRED) # pop3, ews
0092 find_package(KF6KCMUtils ${KF_MIN_VERSION} CONFIG REQUIRED)
0093 find_package(KF6DAV ${KF_MIN_VERSION} CONFIG REQUIRED)
0094 find_package(KF6Wallet ${KF_MIN_VERSION} CONFIG REQUIRED)
0095 
0096 find_package(KF6TextCustomEditor ${KTEXTADDONS_MIN_VERSION} CONFIG REQUIRED)
0097 
0098 # KdepimLibs package
0099 find_package(KPim6Akonadi ${AKONADI_VERSION} CONFIG REQUIRED)
0100 find_package(KPim6Mime ${KMIME_LIB_VERSION} CONFIG REQUIRED)
0101 find_package(KPim6AkonadiMime ${AKONADIMIME_LIB_VERSION} CONFIG REQUIRED)
0102 find_package(KPim6MailTransport ${KMAILTRANSPORT_LIB_VERSION} CONFIG REQUIRED)
0103 find_package(KPim6IdentityManagementWidgets ${IDENTITYMANAGEMENT_LIB_VERSION} CONFIG REQUIRED)
0104 find_package(KPim6AkonadiContactWidgets ${AKONADICONTACT_LIB_VERSION} CONFIG REQUIRED)
0105 find_package(KF6Contacts ${KF_MIN_VERSION} CONFIG REQUIRED)
0106 find_package(KF6CalendarCore ${KF_MIN_VERSION} CONFIG REQUIRED)
0107 find_package(KPim6CalendarUtils ${CALENDARUTILS_LIB_VERSION} CONFIG REQUIRED)
0108 find_package(KPim6Mbox ${KMBOX_LIB_VERSION} CONFIG REQUIRED)
0109 find_package(KPim6IMAP ${KIMAP_LIB_VERSION} CONFIG REQUIRED)
0110 find_package(KPim6AkonadiNotes ${AKONADINOTE_LIB_VERSION} CONFIG REQUIRED)
0111 find_package(KPim6AkonadiCalendar ${AKONADICALENDAR_LIB_VERSION} CONFIG REQUIRED)
0112 find_package(KPim6GAPI ${KGAPI_LIB_VERSION} CONFIG REQUIRED)
0113 find_package(KPim6LdapWidgets ${KLDAP_LIB_VERSION} CONFIG REQUIRED)
0114 
0115 #it will replace kwallet support
0116 find_package(Qt6Keychain CONFIG)
0117 set_package_properties(Qt6Keychain PROPERTIES
0118                                    DESCRIPTION "Provides support for secure credentials storage"
0119                                    URL "https://github.com/frankosterfeld/qtkeychain"
0120                                    TYPE REQUIRED)
0121 
0122 if (Qt6Keychain_VERSION VERSION_LESS 0.14.2)
0123      MESSAGE(STATUS "Qt6KeyChain version is less 0.14.2. It will not support KWallet 6... It will not able to load password. Please update it.")
0124 endif()
0125 
0126 option(KDEPIM_RUN_ISOLATED_TESTS "Run the isolated tests." FALSE)
0127 ecm_set_disabled_deprecation_versions(QT 6.6.0 KF 5.249.0)
0128 
0129 
0130 option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF)
0131 
0132 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF)
0133 if (USE_UNITY_CMAKE_SUPPORT)
0134     set(COMPILE_WITH_UNITY_CMAKE_SUPPORT ON)
0135     add_definitions(-DCOMPILE_WITH_UNITY_CMAKE_SUPPORT)
0136 endif()
0137 
0138 if(BUILD_TESTING)
0139    add_definitions(-DBUILD_TESTING)
0140 endif()
0141 
0142 add_subdirectory(resources)
0143 add_subdirectory(agents)
0144 add_subdirectory(defaultsetup)
0145 add_subdirectory(kioworker)
0146 add_subdirectory(migration)
0147 add_subdirectory(kcms)
0148 add_subdirectory(kmailtransport)
0149 ## install the MIME type spec file for KDEPIM specific MIME types
0150 install(FILES kdepim-mime.xml DESTINATION ${KDE_INSTALL_MIMEDIR})
0151 update_xdg_mimetypes(${KDE_INSTALL_MIMEDIR})
0152 ecm_qt_install_logging_categories(
0153         EXPORT KDEPIMRUNTIME
0154         FILE kdepim-runtime.categories
0155         DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0156         )
0157 
0158 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0159 ki18n_install(po)
0160 
0161 ecm_feature_summary(WHAT ALL
0162                 INCLUDE_QUIET_PACKAGES
0163                 FATAL_ON_MISSING_REQUIRED_PACKAGES
0164 )