Warning, /libraries/kosmindoormap/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(KOSMIndoorMap VERSION ${RELEASE_SERVICE_VERSION})
0012 
0013 option(BUILD_STANDALONE_APP "Build and install the stand-alone test/demo app." OFF)
0014 option(BUILD_TOOLS_ONLY "Build only the command-line tools." OFF)
0015 
0016 find_package(ECM 5.245 REQUIRED NO_MODULE)
0017 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${ECM_MODULE_PATH})
0018 set(CMAKE_CXX_STANDARD 20)
0019 
0020 include(KDECompilerSettings NO_POLICY_SCOPE)
0021 include(ECMAddTests)
0022 include(ECMGenerateHeaders)
0023 include(ECMQtDeclareLoggingCategory)
0024 include(ECMDeprecationSettings)
0025 include(ECMSetupVersion)
0026 include(FeatureSummary)
0027 include(KDEInstallDirs)
0028 include(KDECMakeSettings)
0029 include(GenerateExportHeader)
0030 include(ECMDeprecationSettings)
0031 include(ECMAddAndroidApk)
0032 include(ECMQmlModule)
0033 
0034 ecm_setup_version(PROJECT VARIABLE_PREFIX KOSMINDOORMAP
0035     VERSION_HEADER kosmindoormap_version.h
0036     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KOSMIndoorMapConfigVersion.cmake"
0037     SOVERSION 1
0038 )
0039 
0040 set(QT_MIN_VERSION 6.5)
0041 find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Network)
0042 
0043 if (NOT BUILD_TOOLS_ONLY)
0044     find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Quick)
0045     find_package(KF6 REQUIRED COMPONENTS I18n)
0046     find_package(KPublicTransport REQUIRED)
0047     find_package(KOpeningHours)
0048     set_package_properties(KOpeningHours PROPERTIES TYPE REQUIRED PURPOSE "Highlight currently open amenities/shops/etc.")
0049     if (ANDROID)
0050         find_package(Gradle REQUIRED)
0051     else()
0052         find_package(KF6 OPTIONAL_COMPONENTS CoreAddons Service)
0053     endif()
0054 endif()
0055 
0056 if (BUILD_TESTING)
0057     find_package(Qt6 6.5 REQUIRED COMPONENTS Test Widgets)
0058 endif()
0059 
0060 if (BUILD_STANDALONE_APP)
0061     if (NOT ANDROID)
0062         find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Widgets)
0063     else()
0064         find_package(KF6 REQUIRED COMPONENTS Kirigami2)
0065         find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS QuickControls2 Svg)
0066         find_package(OpenSSL REQUIRED)
0067         if (NOT DEFINED BREEZEICONS_DIR AND EXISTS ${CMAKE_SOURCE_DIR}/../breeze-icons)
0068             set(BREEZEICONS_DIR ${CMAKE_SOURCE_DIR}/../breeze-icons)
0069         endif()
0070     endif()
0071 endif()
0072 
0073 find_package(ZLIB REQUIRED)
0074 find_package(OsmTools)
0075 set_package_properties(OsmTools PROPERTIES TYPE OPTIONAL PURPOSE "Needed only for regenereating line metadata tables (ie. you most likely don't need this)")
0076 
0077 if (NOT BUILD_TOOLS_ONLY)
0078     find_package(FLEX REQUIRED)
0079     set_package_properties(FLEX PROPERTIES PURPOSE "MapCSS parser for indoor map rendering.")
0080     find_package(BISON REQUIRED)
0081     set_package_properties(BISON PROPERTIES PURPOSE "MapCSS parser for indoor map rendering.")
0082 endif()
0083 
0084 if (NOT WIN32)
0085     # try upstream cmake config first
0086     set(protobuf_MODULE_COMPATIBLE ON)
0087     find_package(Protobuf CONFIG)
0088     if(NOT Protobuf_FOUND)
0089     # fall back to cmake's protobuf module
0090        find_package(Protobuf)
0091     endif()
0092     set_package_properties(Protobuf PROPERTIES TYPE OPTIONAL PURPOSE "Parsing of OSM PBF files.")
0093 endif()
0094 
0095 add_definitions(-DQT_NO_CONTEXTLESS_CONNECT)
0096 ecm_set_disabled_deprecation_versions(QT 6.5 KF 5.240.0)
0097 
0098 add_subdirectory(src)
0099 if (BUILD_TESTING)
0100     add_subdirectory(autotests)
0101     add_subdirectory(tests)
0102 endif()
0103 
0104 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
0105 
0106 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KOSMIndoorMap")
0107 configure_package_config_file(
0108     "${CMAKE_CURRENT_SOURCE_DIR}/KOSMIndoorMapConfig.cmake.in"
0109     "${CMAKE_CURRENT_BINARY_DIR}/KOSMIndoorMapConfig.cmake"
0110     INSTALL_DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0111 )
0112 
0113 install(FILES
0114         "${CMAKE_CURRENT_BINARY_DIR}/KOSMIndoorMapConfig.cmake"
0115         "${CMAKE_CURRENT_BINARY_DIR}/KOSMIndoorMapConfigVersion.cmake"
0116     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0117     COMPONENT Devel
0118 )
0119 install(EXPORT KOSMIndoorMapTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KOSMIndoorMapTargets.cmake)
0120 
0121 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kosmindoormap_version.h DESTINATION ${KDE_INSTALL_INCLUDEDIR} COMPONENT Devel)
0122 if (NOT BUILD_TOOLS_ONLY)
0123     ki18n_install(po)
0124 endif()