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 "08")
0009 set (RELEASE_SERVICE_VERSION_MICRO "2")
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 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 if (QT_MAJOR_VERSION STREQUAL "6")
0041     set(KF_MAJOR_VERSION "6")
0042 else()
0043     set(KF_MAJOR_VERSION "5")
0044 endif()
0045 
0046 find_package(Qt${QT_MAJOR_VERSION} 5.15 REQUIRED COMPONENTS Quick)
0047 
0048 if (QT_MAJOR_VERSION STREQUAL 6)
0049     find_package(Qt${QT_MAJOR_VERSION} 5.15 REQUIRED COMPONENTS Core5Compat)
0050 endif()
0051 if (QT_MAJOR_VERSION EQUAL "5" AND ANDROID)
0052     find_package(Qt5 5.15 REQUIRED COMPONENTS AndroidExtras)
0053 endif()
0054 
0055 if (BUILD_TESTING)
0056     find_package(Qt${QT_MAJOR_VERSION} 5.15 REQUIRED COMPONENTS Test Widgets)
0057 endif()
0058 
0059 find_package(ZLIB REQUIRED)
0060 find_package(OsmTools)
0061 set_package_properties(OsmTools PROPERTIES TYPE OPTIONAL PURPOSE "Needed only for regenereating line metadata tables (you don't need this for distribution)")
0062 if (NOT CMAKE_CROSSCOMPILING)
0063     find_package(PolyClipping)
0064     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)")
0065 endif()
0066 
0067 if (NOT WIN32)
0068     find_package(Protobuf)
0069     set_package_properties(Protobuf PROPERTIES TYPE OPTIONAL PURPOSE "Parsing of OSM PBF files.")
0070 endif()
0071 
0072 if (UNIX AND NOT ANDROID)
0073     find_package(KF${KF_MAJOR_VERSION}NetworkManagerQt)
0074     set_package_properties(KF${KF_MAJOR_VERSION}NetworkManagerQt PROPERTIES TYPE OPTIONAL PURPOSE "Onboard status detection.")
0075 endif()
0076 if (ANDROID)
0077     find_package(Gradle)
0078 endif()
0079 
0080 find_package(KF${KF_MAJOR_VERSION} REQUIRED COMPONENTS I18n)
0081 
0082 set(KPUBLICTRANSPORT_INSTALL_INCLUDEDIR ${KDE_INSTALL_INCLUDEDIR}/KPublicTransport)
0083 
0084 ecm_set_disabled_deprecation_versions(QT 5.15.2
0085      KF 5.102.0
0086     )
0087 
0088 add_subdirectory(src)
0089 
0090 if (BUILD_TESTING)
0091     add_subdirectory(autotests)
0092     add_subdirectory(tests)
0093 endif()
0094 
0095 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
0096 
0097 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KPublicTransport")
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 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kpublictransport_version.h DESTINATION ${KPUBLICTRANSPORT_INSTALL_INCLUDEDIR} COMPONENT Devel)
0111 
0112 install(EXPORT KPublicTransportTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KPublicTransportTargets.cmake)
0113 
0114 if (BUILD_QCH)
0115     ecm_install_qch_export(
0116         TARGETS KPublicTransport_QCH
0117         FILE KPublicTransportQchTargets.cmake
0118         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0119         COMPONENT Devel
0120     )
0121     set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KPublicTransportQchTargets.cmake\")")
0122 endif()