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.0")
0003 set(KDEPIM_RUNTIME_VERSION_NUMBER ${PIM_VERSION})
0004 project(kdepim-runtime VERSION ${KDEPIM_RUNTIME_VERSION_NUMBER})
0005 
0006 set(KDEPIM_DEV_VERSION)
0007 set(RELEASE_SERVICE_VERSION "24.02.0")
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.246.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(GenerateExportHeader)
0037 
0038 set(QT_REQUIRED_VERSION "6.6.0")
0039 
0040 set(KDEPIMRUNTIME_LIB_VERSION "${KDEPIM_RUNTIME_VERSION_NUMBER}")
0041 set(KDEPIMRUNTIME_LIB_SOVERSION "6")
0042 set(AKONADI_VERSION "6.0.0")
0043 
0044 set(IDENTITYMANAGEMENT_LIB_VERSION "6.0.0")
0045 set(KMAILTRANSPORT_LIB_VERSION "6.0.0")
0046 set(CALENDARUTILS_LIB_VERSION "6.0.0")
0047 set(KIMAP_LIB_VERSION "6.0.0")
0048 set(KMBOX_LIB_VERSION "6.0.0")
0049 set(AKONADICALENDAR_LIB_VERSION "6.0.0")
0050 set(KMIME_LIB_VERSION "6.0.0")
0051 set(AKONADIMIME_LIB_VERSION "6.0.0")
0052 set(AKONADICONTACT_LIB_VERSION "6.0.0")
0053 set(AKONADINOTE_LIB_VERSION "6.0.0")
0054 set(KGAPI_LIB_VERSION "6.0.0")
0055 set(KLDAP_LIB_VERSION "6.0.0")
0056 set(KTEXTADDONS_MIN_VERSION "1.5.2")
0057 
0058 set( SharedMimeInfo_MINIMUM_VERSION "1.3" )
0059 find_package(SharedMimeInfo ${SharedMimeInfo_MINIMUM_VERSION} REQUIRED)
0060 
0061 find_package(Sasl2)
0062 set_package_properties(Sasl2 PROPERTIES TYPE REQUIRED)
0063 
0064 find_package(Qca-qt6 2.3.7 CONFIG REQUIRED)
0065 set_package_properties(Qca-qt6 PROPERTIES DESCRIPTION "Qt Cryptographic Architecture"
0066                    URL "https://invent.kde.org/libraries/qca" TYPE REQUIRED
0067                    PURPOSE "Needed for ews resource.")
0068 option(KDEPIM_RUN_AKONADI_TEST "Enable autotest based on Akonadi." TRUE)
0069 # QT5 package
0070 find_package(Qt6TextToSpeech ${QT_REQUIRED_VERSION} CONFIG)
0071 set_package_properties(Qt6TextToSpeech PROPERTIES DESCRIPTION
0072     "Add support for texttospeech"
0073     TYPE OPTIONAL
0074 )
0075 if(Qt6TextToSpeech_FOUND)
0076 set(HAVE_TEXT_TO_SPEECH_SUPPORT TRUE)
0077 endif()
0078 find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Network Widgets Test DBus NetworkAuth)
0079 find_package(Qt6WebEngineWidgets ${QT_REQUIRED_VERSION} CONFIG)
0080 
0081 # KF6 package
0082 find_package(KF6Config ${KF_MIN_VERSION} CONFIG REQUIRED)
0083 find_package(KF6ConfigWidgets ${KF_MIN_VERSION} CONFIG REQUIRED)
0084 find_package(KF6NotifyConfig ${KF_MIN_VERSION} CONFIG REQUIRED)
0085 find_package(KF6KIO ${KF_MIN_VERSION} CONFIG REQUIRED)
0086 find_package(KF6ItemModels ${KF_MIN_VERSION} CONFIG REQUIRED)
0087 find_package(KF6Codecs ${KF_MIN_VERSION} CONFIG REQUIRED)
0088 find_package(KF6WindowSystem ${KF_MIN_VERSION} CONFIG REQUIRED)
0089 find_package(KF6TextWidgets ${KF_MIN_VERSION} CONFIG REQUIRED) # for KPluralHandlingSpinBox
0090 find_package(KF6Notifications ${KF_MIN_VERSION} CONFIG REQUIRED) # pop3, ews
0091 find_package(KF6KCMUtils ${KF_MIN_VERSION} CONFIG REQUIRED)
0092 find_package(KF6DAV ${KF_MIN_VERSION} CONFIG REQUIRED)
0093 find_package(KF6Wallet ${KF_MIN_VERSION} CONFIG REQUIRED)
0094 
0095 find_package(KF6TextCustomEditor ${KTEXTADDONS_MIN_VERSION} CONFIG REQUIRED)
0096 
0097 # KdepimLibs package
0098 find_package(KPim6Akonadi ${AKONADI_VERSION} CONFIG REQUIRED)
0099 find_package(KPim6Mime ${KMIME_LIB_VERSION} CONFIG REQUIRED)
0100 find_package(KPim6AkonadiMime ${AKONADIMIME_LIB_VERSION} CONFIG REQUIRED)
0101 find_package(KPim6MailTransport ${KMAILTRANSPORT_LIB_VERSION} CONFIG REQUIRED)
0102 find_package(KPim6IdentityManagementWidgets ${IDENTITYMANAGEMENT_LIB_VERSION} CONFIG REQUIRED)
0103 find_package(KPim6AkonadiContactWidgets ${AKONADICONTACT_LIB_VERSION} CONFIG REQUIRED)
0104 find_package(KF6Contacts ${KF_MIN_VERSION} CONFIG REQUIRED)
0105 find_package(KF6CalendarCore ${KF_MIN_VERSION} CONFIG REQUIRED)
0106 find_package(KPim6CalendarUtils ${CALENDARUTILS_LIB_VERSION} CONFIG REQUIRED)
0107 find_package(KPim6Mbox ${KMBOX_LIB_VERSION} CONFIG REQUIRED)
0108 find_package(KPim6IMAP ${KIMAP_LIB_VERSION} CONFIG REQUIRED)
0109 find_package(KPim6AkonadiNotes ${AKONADINOTE_LIB_VERSION} CONFIG REQUIRED)
0110 find_package(KPim6AkonadiCalendar ${AKONADICALENDAR_LIB_VERSION} CONFIG REQUIRED)
0111 find_package(KPim6GAPI ${KGAPI_LIB_VERSION} CONFIG REQUIRED)
0112 find_package(KPim6LdapWidgets ${KLDAP_LIB_VERSION} CONFIG REQUIRED)
0113 
0114 #it will replace kwallet support
0115 find_package(Qt6Keychain CONFIG)
0116 set_package_properties(Qt6Keychain PROPERTIES
0117                                    DESCRIPTION "Provides support for secure credentials storage"
0118                                    URL "https://github.com/frankosterfeld/qtkeychain"
0119                                    TYPE REQUIRED)
0120 
0121 if (Qt6Keychain_VERSION VERSION_LESS 0.14.2)
0122      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.")
0123 endif()
0124 
0125 option(KDEPIM_RUN_ISOLATED_TESTS "Run the isolated tests." FALSE)
0126 ecm_set_disabled_deprecation_versions(QT 6.6.0 KF 5.248.0)
0127 
0128 
0129 option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF)
0130 
0131 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF)
0132 if (USE_UNITY_CMAKE_SUPPORT)
0133     set(COMPILE_WITH_UNITY_CMAKE_SUPPORT ON)
0134     add_definitions(-DCOMPILE_WITH_UNITY_CMAKE_SUPPORT)
0135 endif()
0136 
0137 if(BUILD_TESTING)
0138    add_definitions(-DBUILD_TESTING)
0139 endif()
0140 
0141 add_subdirectory(resources)
0142 add_subdirectory(agents)
0143 add_subdirectory(defaultsetup)
0144 add_subdirectory(kioworker)
0145 add_subdirectory(migration)
0146 add_subdirectory(kcms)
0147 add_subdirectory(kmailtransport)
0148 ## install the MIME type spec file for KDEPIM specific MIME types
0149 install(FILES kdepim-mime.xml DESTINATION ${KDE_INSTALL_MIMEDIR})
0150 update_xdg_mimetypes(${KDE_INSTALL_MIMEDIR})
0151 ecm_qt_install_logging_categories(
0152         EXPORT KDEPIMRUNTIME
0153         FILE kdepim-runtime.categories
0154         DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0155         )
0156 
0157 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0158 ki18n_install(po)
0159 
0160 feature_summary(WHAT ALL
0161                 INCLUDE_QUIET_PACKAGES
0162                 FATAL_ON_MISSING_REQUIRED_PACKAGES
0163 )