Warning, /pim/itinerary/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2018 Volker Krause <vkrause@kde.org> 0002 # SPDX-License-Identifier: BSD-3-Clause 0003 0004 cmake_minimum_required(VERSION 3.16) 0005 0006 # KDE Application Version, managed by release script 0007 set (RELEASE_SERVICE_VERSION_MAJOR "24") 0008 set (RELEASE_SERVICE_VERSION_MINOR "04") 0009 set (RELEASE_SERVICE_VERSION_MICRO "70") 0010 set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") 0011 project(itinerary VERSION ${RELEASE_SERVICE_VERSION}) 0012 0013 set(KF_MIN_VERSION 5.245) 0014 find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) 0015 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) 0016 0017 include(KDECompilerSettings NO_POLICY_SCOPE) 0018 include(ECMAddTests) 0019 include(ECMGenerateHeaders) 0020 include(ECMInstallIcons) 0021 include(ECMQtDeclareLoggingCategory) 0022 include(ECMSetupVersion) 0023 include(FeatureSummary) 0024 include(KDEInstallDirs) 0025 include(KDECMakeSettings) 0026 include(GenerateExportHeader) 0027 include(ECMQmlModule) 0028 include(ECMDeprecationSettings) 0029 include(ECMFeatureSummary) 0030 include(ECMAddAndroidApk) 0031 0032 set(CMAKE_CXX_STANDARD 17) 0033 set(CMAKE_AUTOMOC ON) 0034 set(CMAKE_AUTORCC ON) 0035 0036 ecm_setup_version(PROJECT VARIABLE_PREFIX ITINERARY VERSION_HEADER itinerary_version.h) 0037 set(ITINERARY_DETAILED_VERSION_STRING "${ITINERARY_VERSION}") 0038 if (EXISTS "${CMAKE_SOURCE_DIR}/.git") 0039 find_package(Git) 0040 set_package_properties(Git PROPERTIES TYPE OPTIONAL PURPOSE "Determine exact build version.") 0041 if (GIT_FOUND) 0042 execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE _git_rev) 0043 string(REGEX REPLACE "\n" "" _git_rev "${_git_rev}") 0044 set(ITINERARY_DETAILED_VERSION_STRING "${ITINERARY_VERSION} (${_git_rev})") 0045 endif() 0046 endif() 0047 0048 set(QT_MIN_VERSION 6.5) 0049 0050 # build-time dependencies 0051 find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Test Quick Positioning QuickControls2) 0052 find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS I18n CoreAddons Contacts Notifications CalendarCore Holidays UnitConversion) 0053 find_package(KF6 ${KF_MIN_VERSION} OPTIONAL_COMPONENTS NetworkManagerQt) 0054 find_package(KF6KirigamiAddons 0.11.40 REQUIRED) 0055 find_package(KPim6PkPass CONFIG REQUIRED) 0056 find_package(KPim6Itinerary 5.23.0 CONFIG REQUIRED) 0057 find_package(KPublicTransport 23.07.70 CONFIG REQUIRED) 0058 find_package(KOSMIndoorMap CONFIG REQUIRED) 0059 find_package(KHealthCertificate CONFIG) 0060 find_package(LibIcal 3.0) 0061 find_package(ZLIB REQUIRED) 0062 set(QUOTIENT_FORCE_NAMESPACED_INCLUDES ON) 0063 find_package(QuotientQt6 0.7.2 CONFIG) 0064 set_package_properties("ZLIB" PROPERTIES PURPOSE "Needed for retrieving weather forecast data.") 0065 set_package_properties(LibIcal PROPERTIES PURPOSE "Needed for Android calendar integration.") 0066 set_package_properties(KF6Solid PROPERTIES TYPE RUNTIME PURPOSE "Used for controlling the screen brightness.") 0067 set_package_properties(KHealthCertificate PROPERTIES TYPE OPTIONAL PURPOSE "Needed for the vaccination certificate manager.") 0068 set_package_properties(QuotientQt6 PROPERTIES TYPE OPTIONAL PURPOSE "Needed for Matrix location sharing.") 0069 if (ANDROID) 0070 set_package_properties(LibIcal PROPERTIES TYPE REQUIRED) 0071 else() 0072 find_package(SharedMimeInfo 1.0 REQUIRED) 0073 endif() 0074 0075 ecm_set_disabled_deprecation_versions(QT 5.15.2 0076 KF 5.102.0 0077 ) 0078 0079 0080 include(ECMFindQmlModule) 0081 ecm_find_qmlmodule(QtLocation 5.11) 0082 ecm_find_qmlmodule(QtMultimedia 5.15) 0083 ecm_find_qmlmodule(QtPositioning 5.11) 0084 ecm_find_qmlmodule(org.kde.kitemmodels 1.0) 0085 ecm_find_qmlmodule(org.kde.prison 1.0) 0086 ecm_find_qmlmodule(org.kde.prison.scanner 1.0) 0087 ecm_find_qmlmodule(org.kde.kosmindoormap 1.0) 0088 ecm_find_qmlmodule(org.kde.kopeninghours 1.0) 0089 0090 # runtime dependencies are build-time dependencies on Android 0091 if (ANDROID) 0092 find_package(Qt6 REQUIRED COMPONENTS Svg) 0093 find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS Archive Kirigami2 Prison) 0094 if (NOT DEFINED BREEZEICONS_DIR AND EXISTS ${CMAKE_SOURCE_DIR}/../breeze-icons) 0095 set(BREEZEICONS_DIR ${CMAKE_SOURCE_DIR}/../breeze-icons) 0096 endif() 0097 find_package(OpenSSL REQUIRED) 0098 find_package(Gradle REQUIRED) 0099 else() 0100 find_package(Qt6 REQUIRED COMPONENTS Widgets DBus) 0101 find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS DBusAddons QQC2DesktopStyle WindowSystem) 0102 find_package(KF6 ${KF_MIN_VERSION} OPTIONAL_COMPONENTS Solid Crash FileMetaData KIO) 0103 set(HAVE_DBUS ON) 0104 endif() 0105 if (TARGET KF6::Crash) 0106 set(HAVE_KCRASH TRUE) 0107 endif() 0108 if (TARGET KHealthCertificate) 0109 set(HAVE_KHEALTHCERTIFICATE TRUE) 0110 endif() 0111 if (TARGET QuotientQt6) 0112 set(HAVE_MATRIX TRUE) 0113 else() 0114 set(HAVE_MATRIX FALSE) 0115 endif() 0116 0117 add_subdirectory(src) 0118 if (BUILD_TESTING) 0119 add_subdirectory(autotests) 0120 add_subdirectory(tests) 0121 endif() 0122 0123 ecm_qt_install_logging_categories( 0124 EXPORT ITINERARY 0125 FILE org_kde_itinerary.categories 0126 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} 0127 ) 0128 ki18n_install(po) 0129 ecm_feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)