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()