Warning, /utilities/ktrip/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: 2019-2021 Nicolas Fella <nicolas.fella@gmx.de>
0002 # SPDX-License-Identifier: BSD-2-Clause
0003 
0004 cmake_minimum_required(VERSION 3.16)
0005 
0006 # KDE Applications 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 
0012 project(ktrip VERSION ${RELEASE_SERVICE_VERSION})
0013 
0014 set(QT_MIN_VERSION "6.5.0")
0015 set(KF_MIN_VERSION "5.240.0")
0016 
0017 set(CMAKE_CXX_STANDARD 17)
0018 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0019 
0020 find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE)
0021 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
0022 
0023 include(KDECompilerSettings NO_POLICY_SCOPE)
0024 include(ECMAddTests)
0025 include(ECMGenerateHeaders)
0026 include(ECMQtDeclareLoggingCategory)
0027 include(ECMSetupVersion)
0028 include(FeatureSummary)
0029 include(KDEInstallDirs)
0030 include(KDECMakeSettings)
0031 include(KDEClangFormat)
0032 include(ECMQmlModule)
0033 include(ECMFindQmlModule)
0034 include(KDEGitCommitHooks)
0035 include(ECMCheckOutboundLicense)
0036 include(ECMAddAppIcon)
0037 include(ECMAddAndroidApk)
0038 
0039 ecm_setup_version(${PROJECT_VERSION}
0040     VARIABLE_PREFIX KTRIP
0041     VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/version.h
0042 )
0043 
0044 find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Gui Qml Quick QuickControls2)
0045 find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS CoreAddons I18n Config)
0046 
0047 if (ANDROID)
0048     # runtime dependencies are build-time dependencies on Android
0049     find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Svg)
0050     find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS Kirigami)
0051     find_package(OpenSSL REQUIRED)
0052 
0053     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/android/version.gradle.in ${CMAKE_BINARY_DIR}/version.gradle)
0054 
0055 else()
0056     find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Widgets)
0057     find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS QQC2DesktopStyle)
0058 endif()
0059 
0060 find_package(KPublicTransport)
0061 set_package_properties(KPublicTransport PROPERTIES TYPE REQUIRED PURPOSE "Query online journey information")
0062 
0063 ecm_find_qmlmodule(org.kde.kirigamiaddons.dateandtime 0.1)
0064 ecm_find_qmlmodule(org.kde.kirigamiaddons.formcard 1.0)
0065 
0066 add_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_URL_CAST_FROM_STRING)
0067 add_definitions(-DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT)
0068 add_definitions(-DQT_USE_QSTRINGBUILDER)
0069 add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050d00)
0070 
0071 find_package(KF${QT_MAJOR_VERSION}KirigamiAddons 0.11.0 REQUIRED)
0072 set_package_properties(KF6KirigamiAddons PROPERTIES
0073     TYPE REQUIRED
0074     PURPOSE "Required runtime dependency (all modules are required)"
0075 )
0076 
0077 ki18n_install(po)
0078 
0079 add_subdirectory(src)
0080 
0081 install(FILES org.kde.ktrip.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
0082 
0083 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
0084 
0085 # add clang-format target for all our real source files
0086 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0087 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0088 
0089 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0090 
0091 file(GLOB_RECURSE ALL_SOURCE_FILES *.cpp *.h *.qml)
0092 # CI installs dependency headers to _install and _build, which break the reuse check
0093 # Fixes the test by excluding this directory
0094 list(FILTER ALL_SOURCE_FILES EXCLUDE REGEX [[_(install|build)/.*]])
0095 ecm_check_outbound_license(LICENSES GPL-2.0-only GPL-3.0-only FILES ${ALL_SOURCE_FILES})