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 "01") 0009 set (RELEASE_SERVICE_VERSION_MICRO "95") 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(ECMAddAndroidApk) 0030 0031 set(CMAKE_CXX_STANDARD 17) 0032 set(CMAKE_AUTOMOC ON) 0033 set(CMAKE_AUTORCC ON) 0034 0035 ecm_setup_version(PROJECT VARIABLE_PREFIX ITINERARY VERSION_HEADER itinerary_version.h) 0036 set(ITINERARY_DETAILED_VERSION_STRING "${ITINERARY_VERSION}") 0037 if (EXISTS "${CMAKE_SOURCE_DIR}/.git") 0038 find_package(Git) 0039 set_package_properties(Git PROPERTIES TYPE OPTIONAL PURPOSE "Determine exact build version.") 0040 if (GIT_FOUND) 0041 execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE _git_rev) 0042 string(REGEX REPLACE "\n" "" _git_rev "${_git_rev}") 0043 set(ITINERARY_DETAILED_VERSION_STRING "${ITINERARY_VERSION} (${_git_rev})") 0044 endif() 0045 endif() 0046 0047 set(QT_MIN_VERSION 6.5) 0048 0049 # build-time dependencies 0050 find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Test Quick Positioning QuickControls2) 0051 find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS I18n CoreAddons Contacts Notifications CalendarCore Holidays UnitConversion) 0052 find_package(KF6 ${KF_MIN_VERSION} OPTIONAL_COMPONENTS NetworkManagerQt) 0053 find_package(KF6KirigamiAddons 0.11.40 REQUIRED) 0054 find_package(KPim6PkPass CONFIG REQUIRED) 0055 find_package(KPim6Itinerary 5.23.0 CONFIG REQUIRED) 0056 find_package(KPublicTransport 23.07.70 CONFIG REQUIRED) 0057 find_package(KOSMIndoorMap CONFIG REQUIRED) 0058 find_package(KHealthCertificate CONFIG) 0059 find_package(LibIcal 3.0) 0060 find_package(ZLIB REQUIRED) 0061 set(QUOTIENT_FORCE_NAMESPACED_INCLUDES ON) 0062 find_package(QuotientQt6 0.7.2 CONFIG) 0063 set_package_properties("ZLIB" PROPERTIES PURPOSE "Needed for retrieving weather forecast data.") 0064 set_package_properties(LibIcal PROPERTIES PURPOSE "Needed for Android calendar integration.") 0065 set_package_properties(KF6Solid PROPERTIES TYPE RUNTIME PURPOSE "Used for controlling the screen brightness.") 0066 set_package_properties(KHealthCertificate PROPERTIES TYPE OPTIONAL PURPOSE "Needed for the vaccination certificate manager.") 0067 set_package_properties(QuotientQt6 PROPERTIES TYPE OPTIONAL PURPOSE "Needed for Matrix location sharing.") 0068 if (ANDROID) 0069 set_package_properties(LibIcal PROPERTIES TYPE REQUIRED) 0070 else() 0071 find_package(SharedMimeInfo 1.0 REQUIRED) 0072 endif() 0073 0074 ecm_set_disabled_deprecation_versions(QT 5.15.2 0075 KF 5.102.0 0076 ) 0077 0078 0079 include(ECMFindQmlModule) 0080 ecm_find_qmlmodule(QtLocation 5.11) 0081 ecm_find_qmlmodule(QtMultimedia 5.15) 0082 ecm_find_qmlmodule(QtPositioning 5.11) 0083 ecm_find_qmlmodule(org.kde.kitemmodels 1.0) 0084 ecm_find_qmlmodule(org.kde.prison 1.0) 0085 ecm_find_qmlmodule(org.kde.prison.scanner 1.0) 0086 ecm_find_qmlmodule(org.kde.kosmindoormap 1.0) 0087 ecm_find_qmlmodule(org.kde.kopeninghours 1.0) 0088 0089 # runtime dependencies are build-time dependencies on Android 0090 if (ANDROID) 0091 find_package(Qt6 REQUIRED COMPONENTS Svg) 0092 find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS Archive Kirigami2 Prison) 0093 if (NOT DEFINED BREEZEICONS_DIR AND EXISTS ${CMAKE_SOURCE_DIR}/../breeze-icons) 0094 set(BREEZEICONS_DIR ${CMAKE_SOURCE_DIR}/../breeze-icons) 0095 endif() 0096 find_package(OpenSSL REQUIRED) 0097 find_package(Gradle REQUIRED) 0098 else() 0099 find_package(Qt6 REQUIRED COMPONENTS Widgets DBus) 0100 find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS DBusAddons QQC2DesktopStyle WindowSystem) 0101 find_package(KF6 ${KF_MIN_VERSION} OPTIONAL_COMPONENTS Solid Crash FileMetaData KIO) 0102 set(HAVE_DBUS ON) 0103 endif() 0104 if (TARGET KF6::Crash) 0105 set(HAVE_KCRASH TRUE) 0106 endif() 0107 if (TARGET KHealthCertificate) 0108 set(HAVE_KHEALTHCERTIFICATE TRUE) 0109 endif() 0110 if (TARGET QuotientQt6) 0111 set(HAVE_MATRIX TRUE) 0112 else() 0113 set(HAVE_MATRIX FALSE) 0114 endif() 0115 0116 add_subdirectory(src) 0117 if (BUILD_TESTING) 0118 add_subdirectory(autotests) 0119 add_subdirectory(tests) 0120 endif() 0121 0122 ecm_qt_install_logging_categories( 0123 EXPORT ITINERARY 0124 FILE org_kde_itinerary.categories 0125 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} 0126 ) 0127 ki18n_install(po) 0128 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)