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)