Warning, /libraries/kpublictransport/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(KPublicTransport VERSION ${RELEASE_SERVICE_VERSION})
0012 
0013 find_package(ECM 5.245 REQUIRED NO_MODULE)
0014 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${ECM_MODULE_PATH})
0015 
0016 include(KDECompilerSettings NO_POLICY_SCOPE)
0017 include(ECMAddTests)
0018 include(ECMGenerateHeaders)
0019 include(ECMQtDeclareLoggingCategory)
0020 include(ECMDeprecationSettings)
0021 include(ECMSetupVersion)
0022 include(FeatureSummary)
0023 include(KDEInstallDirs)
0024 include(KDECMakeSettings)
0025 include(GenerateExportHeader)
0026 include(ECMAddQch)
0027 include(ECMQmlModule)
0028 
0029 set(CMAKE_CXX_STANDARD 20)
0030 
0031 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF)
0032 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)")
0033 
0034 ecm_setup_version(PROJECT VARIABLE_PREFIX KPUBLICTRANSPORT
0035     VERSION_HEADER kpublictransport_version.h
0036     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KPublicTransportConfigVersion.cmake"
0037     SOVERSION 1
0038 )
0039 
0040 find_package(Qt6 6.5 REQUIRED COMPONENTS Quick)
0041 
0042 if (BUILD_TESTING)
0043     find_package(Qt6 5.15 REQUIRED COMPONENTS Test Widgets)
0044 endif()
0045 
0046 find_package(ZLIB REQUIRED)
0047 find_package(OsmTools)
0048 set_package_properties(OsmTools PROPERTIES TYPE OPTIONAL PURPOSE "Needed only for regenereating line metadata tables (you don't need this for distribution)")
0049 if (NOT CMAKE_CROSSCOMPILING)
0050     find_package(PolyClipping)
0051     set_package_properties(PolyClipping PROPERTIES TYPE OPTIONAL PURPOSE "Needed only for processing coverage area data from the Transport API Repository (you don't need this for distribution)")
0052 endif()
0053 
0054 if (NOT WIN32)
0055     find_package(Protobuf)
0056     set_package_properties(Protobuf PROPERTIES TYPE OPTIONAL PURPOSE "Parsing of OSM PBF files.")
0057 endif()
0058 
0059 if (UNIX AND NOT ANDROID)
0060     find_package(KF6NetworkManagerQt)
0061     set_package_properties(KF6NetworkManagerQt PROPERTIES TYPE OPTIONAL PURPOSE "Onboard status detection.")
0062 endif()
0063 if (ANDROID)
0064     find_package(Gradle)
0065 endif()
0066 
0067 find_package(KF6 REQUIRED COMPONENTS I18n)
0068 
0069 set(KPUBLICTRANSPORT_INSTALL_INCLUDEDIR ${KDE_INSTALL_INCLUDEDIR}/KPublicTransport)
0070 
0071 ecm_set_disabled_deprecation_versions(QT 6.5 KF 5.245.0)
0072 
0073 add_subdirectory(src)
0074 
0075 if (BUILD_TESTING)
0076     add_subdirectory(autotests)
0077     add_subdirectory(tests)
0078 endif()
0079 
0080 
0081 
0082 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KPublicTransport")
0083 
0084 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kpublictransport_version.h DESTINATION ${KPUBLICTRANSPORT_INSTALL_INCLUDEDIR} COMPONENT Devel)
0085 
0086 install(EXPORT KPublicTransportTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KPublicTransportTargets.cmake)
0087 
0088 if (BUILD_QCH)
0089     ecm_install_qch_export(
0090         TARGETS KPublicTransport_QCH
0091         FILE KPublicTransportQchTargets.cmake
0092         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0093         COMPONENT Devel
0094     )
0095     set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KPublicTransportQchTargets.cmake\")")
0096 endif()
0097 
0098 configure_package_config_file(
0099     "${CMAKE_CURRENT_SOURCE_DIR}/KPublicTransportConfig.cmake.in"
0100     "${CMAKE_CURRENT_BINARY_DIR}/KPublicTransportConfig.cmake"
0101     INSTALL_DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0102 )
0103 
0104 install(FILES
0105         "${CMAKE_CURRENT_BINARY_DIR}/KPublicTransportConfig.cmake"
0106         "${CMAKE_CURRENT_BINARY_DIR}/KPublicTransportConfigVersion.cmake"
0107     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0108     COMPONENT Devel
0109 )
0110 
0111 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)