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

0001 # SPDX-FileCopyrightText: 2022 Plata Hill <plata.hill@kdemail.net>
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(telly-skout VERSION ${RELEASE_SERVICE_VERSION})
0013 
0014 set(KF_MIN_VERSION "5.75.0")
0015 set(QT_MIN_VERSION "5.15.0")
0016 
0017 include(FeatureSummary)
0018 
0019 ################# KDE settings #################
0020 
0021 find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE)
0022 
0023 # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
0024 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
0025 
0026 include(ECMAddTests)
0027 include(ECMSetupVersion)
0028 include(ECMGenerateHeaders)
0029 include(KDEInstallDirs)
0030 include(KDEClangFormat)
0031 include(KDECMakeSettings)
0032 include(ECMPoQmTools)
0033 include(KDECompilerSettings NO_POLICY_SCOPE)
0034 include(QmlFormat.cmake)
0035 
0036 ecm_setup_version(${PROJECT_VERSION}
0037     VARIABLE_PREFIX TELLY_SKOUT
0038     VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/telly-skout-version.h
0039 )
0040 
0041 ################# dependencies #################
0042 
0043 find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Core Quick Test Gui QuickControls2 Sql Xml)
0044 find_package(KF${QT_MAJOR_VERSION} ${KF_MIN_VERSION} REQUIRED COMPONENTS CoreAddons Config I18n)
0045 
0046 if(ANDROID)
0047     find_package(KF${QT_MAJOR_VERSION} ${KF_MIN_VERSION} REQUIRED COMPONENTS Kirigami2)
0048 else()
0049     find_package(KF${QT_MAJOR_VERSION} ${KF_MIN_VERSION} OPTIONAL_COMPONENTS Crash)
0050     find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED COMPONENTS Widgets)
0051 endif()
0052 
0053 if(TARGET KF${QT_MAJOR_VERSION}::Crash)
0054     set(HAVE_KCRASH TRUE)
0055 endif()
0056 
0057 find_package(KF${QT_MAJOR_VERSION}KirigamiAddons REQUIRED)
0058 set_package_properties(KF${QT_MAJOR_VERSION}KirigamiAddons PROPERTIES
0059     TYPE REQUIRED
0060     PURPOSE "Provides additional visual components"
0061 )
0062 
0063 ################# compiler #################
0064 
0065 set(CMAKE_CXX_STANDARD 17)
0066 if(MSVC)
0067     add_compile_options(/W3 /WX)
0068 else()
0069     add_compile_options(-Wall -Wextra -Wconversion -Wsign-conversion -pedantic)
0070 endif()
0071 
0072 ################# build and install #################
0073 
0074 add_subdirectory(autotests)
0075 add_subdirectory(benchmarks)
0076 add_subdirectory(src)
0077 
0078 ki18n_install(po)
0079 
0080 install(PROGRAMS org.kde.telly-skout.desktop DESTINATION ${KDE_INSTALL_APPDIR})
0081 install(FILES org.kde.telly-skout.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
0082 install(FILES org.kde.telly-skout.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/apps)
0083 
0084 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
0085 
0086 ################# format sources #################
0087 
0088 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES
0089     autotests/*.cpp autotests/*.h
0090     benchmarks/*.cpp benchmarks/*.h
0091     src/*.cpp src/*.h
0092 )
0093 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0094 add_custom_target(clang-format-always ALL DEPENDS ${ALL_CLANG_FORMAT_SOURCE_FILES})
0095 add_dependencies(clang-format-always clang-format)
0096 
0097 file(GLOB_RECURSE ALL_QML_FORMAT_SOURCE_FILES src/qml/*.qml)
0098 qml_format(${ALL_QML_FORMAT_SOURCE_FILES})
0099 
0100 add_custom_target(qml-format-always ALL DEPENDS ${ALL_QML_FORMAT_SOURCE_FILES})
0101 add_dependencies(qml-format-always qml-format)