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 "23")
0008 set (RELEASE_SERVICE_VERSION_MINOR "07")
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.91 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 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF)
0030 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)")
0031 
0032 ecm_setup_version(PROJECT VARIABLE_PREFIX KPUBLICTRANSPORT
0033     VERSION_HEADER kpublictransport_version.h
0034     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KPublicTransportConfigVersion.cmake"
0035     SOVERSION 1
0036 )
0037 
0038 if (QT_MAJOR_VERSION STREQUAL "6")
0039     set(KF_MAJOR_VERSION "6")
0040 else()
0041     set(KF_MAJOR_VERSION "5")
0042 endif()
0043 
0044 find_package(Qt${QT_MAJOR_VERSION} 5.15 REQUIRED COMPONENTS Quick)
0045 
0046 if (QT_MAJOR_VERSION STREQUAL 6)
0047     find_package(Qt${QT_MAJOR_VERSION} 5.15 REQUIRED COMPONENTS Core5Compat)
0048 endif()
0049 if (QT_MAJOR_VERSION EQUAL "5" AND ANDROID)
0050     find_package(Qt5 5.15 REQUIRED COMPONENTS AndroidExtras)
0051 endif()
0052 
0053 if (BUILD_TESTING)
0054     find_package(Qt${QT_MAJOR_VERSION} 5.15 REQUIRED COMPONENTS Test Widgets)
0055 endif()
0056 
0057 find_package(ZLIB REQUIRED)
0058 find_package(OsmTools)
0059 set_package_properties(OsmTools PROPERTIES TYPE OPTIONAL PURPOSE "Needed only for regenereating line metadata tables (you don't need this for distribution)")
0060 if (NOT CMAKE_CROSSCOMPILING)
0061     find_package(PolyClipping)
0062     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)")
0063 endif()
0064 
0065 if (NOT WIN32)
0066     find_package(Protobuf)
0067     set_package_properties(Protobuf PROPERTIES TYPE OPTIONAL PURPOSE "Parsing of OSM PBF files.")
0068 endif()
0069 
0070 if (UNIX AND NOT ANDROID)
0071     find_package(KF${KF_MAJOR_VERSION}NetworkManagerQt)
0072     set_package_properties(KF${KF_MAJOR_VERSION}NetworkManagerQt PROPERTIES TYPE OPTIONAL PURPOSE "Onboard status detection.")
0073 endif()
0074 if (ANDROID)
0075     find_package(Gradle)
0076 endif()
0077 
0078 find_package(KF${KF_MAJOR_VERSION} REQUIRED COMPONENTS I18n)
0079 
0080 set(KPUBLICTRANSPORT_INSTALL_INCLUDEDIR ${KDE_INSTALL_INCLUDEDIR}/KPublicTransport)
0081 
0082 ecm_set_disabled_deprecation_versions(QT 5.15.2
0083      KF 5.102.0
0084     )
0085 
0086 add_subdirectory(src)
0087 
0088 if (BUILD_TESTING)
0089     add_subdirectory(autotests)
0090     add_subdirectory(tests)
0091 endif()
0092 
0093 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
0094 
0095 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KPublicTransport")
0096 configure_package_config_file(
0097     "${CMAKE_CURRENT_SOURCE_DIR}/KPublicTransportConfig.cmake.in"
0098     "${CMAKE_CURRENT_BINARY_DIR}/KPublicTransportConfig.cmake"
0099     INSTALL_DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0100 )
0101 
0102 install(FILES
0103         "${CMAKE_CURRENT_BINARY_DIR}/KPublicTransportConfig.cmake"
0104         "${CMAKE_CURRENT_BINARY_DIR}/KPublicTransportConfigVersion.cmake"
0105     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0106     COMPONENT Devel
0107 )
0108 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kpublictransport_version.h DESTINATION ${KPUBLICTRANSPORT_INSTALL_INCLUDEDIR} COMPONENT Devel)
0109 
0110 install(EXPORT KPublicTransportTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KPublicTransportTargets.cmake)
0111 
0112 if (BUILD_QCH)
0113     ecm_install_qch_export(
0114         TARGETS KPublicTransport_QCH
0115         FILE KPublicTransportQchTargets.cmake
0116         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0117         COMPONENT Devel
0118     )
0119     set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KPublicTransportQchTargets.cmake\")")
0120 endif()