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)