Warning, /graphics/spectacle/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 0002 # KDE Application Version, managed by release script 0003 set(RELEASE_SERVICE_VERSION_MAJOR "24") 0004 set(RELEASE_SERVICE_VERSION_MINOR "04") 0005 set(RELEASE_SERVICE_VERSION_MICRO "70") 0006 set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") 0007 set(SPECTACLE_VERSION ${RELEASE_SERVICE_VERSION}) 0008 # minimum requirements 0009 0010 cmake_minimum_required (VERSION 3.16 FATAL_ERROR) 0011 # Spectacle project 0012 project(Spectacle VERSION ${SPECTACLE_VERSION}) 0013 0014 set(QT_MIN_VERSION "6.6.0") 0015 set(KF_MIN_VERSION "5.240.0") 0016 0017 find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) 0018 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) 0019 0020 # set up standard kde build settings 0021 0022 include(KDEInstallDirs) 0023 include(KDECMakeSettings) 0024 include(KDECompilerSettings NO_POLICY_SCOPE) 0025 0026 # Set C++ standard separately from KDECompilerSettings since that is set to an older C++ standard. 0027 set(CMAKE_CXX_STANDARD 20) 0028 set(CMAKE_CXX_STANDARD_REQUIRED ON) 0029 0030 # used cmake macros 0031 0032 include(ECMInstallIcons) 0033 include(ECMSetupVersion) 0034 include(FeatureSummary) 0035 include(ECMQtDeclareLoggingCategory) 0036 include(ECMAddTests) 0037 include(KDEClangFormat) 0038 include(KDEGitCommitHooks) 0039 include(ECMDeprecationSettings) 0040 include(ECMFindQmlModule) 0041 0042 # find dependencies 0043 0044 find_package( 0045 Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED 0046 Core 0047 Concurrent 0048 Qml 0049 Quick 0050 QuickControls2 0051 QuickTemplates2 0052 Widgets 0053 DBus 0054 PrintSupport 0055 Test 0056 WaylandClient 0057 Multimedia 0058 ) 0059 qt_policy(SET QTP0001 NEW) 0060 0061 find_package( 0062 KF6 ${KF_MIN_VERSION} REQUIRED 0063 CoreAddons 0064 WidgetsAddons 0065 DBusAddons 0066 Notifications 0067 Config 0068 I18n 0069 KIO 0070 WindowSystem 0071 GlobalAccel 0072 XmlGui 0073 GuiAddons 0074 KirigamiPlatform 0075 ) 0076 0077 find_package(Wayland REQUIRED COMPONENTS Client) 0078 find_package(PlasmaWaylandProtocols REQUIRED) 0079 find_package(LayerShellQt REQUIRED) 0080 find_package(KPipeWire) 0081 find_package(ZXing REQUIRED) 0082 set_package_properties(KPipeWire PROPERTIES DESCRIPTION 0083 "Used to record pipewire streams into a file" 0084 TYPE REQUIRED 0085 ) 0086 0087 # optional components 0088 find_package(KF6DocTools ${KF_MIN_VERSION}) 0089 set_package_properties(KF6DocTools PROPERTIES DESCRIPTION 0090 "Tools to generate documentation" 0091 TYPE OPTIONAL 0092 ) 0093 find_package(KF6Purpose) 0094 if (KF6Purpose_FOUND) 0095 set(PURPOSE_FOUND 1) 0096 endif() 0097 0098 find_package(XCB COMPONENTS XFIXES IMAGE UTIL CURSOR RANDR) 0099 set(XCB_COMPONENTS_ERRORS FALSE) 0100 set(XCB_COMPONENTS_FOUND TRUE) 0101 if(NOT XCB_XFIXES_FOUND) 0102 set(XCB_COMPONENTS_ERRORS "${XCB_COMPONENTS_ERRORS} XCB-XFIXES ") 0103 set(XCB_COMPONENTS_FOUND FALSE) 0104 endif() 0105 if(NOT XCB_IMAGE_FOUND) 0106 set(XCB_COMPONENTS_ERRORS "${XCB_COMPONENTS_ERRORS} XCB-IMAGE ") 0107 set(XCB_COMPONENTS_FOUND FALSE) 0108 endif() 0109 if(NOT XCB_UTIL_FOUND) 0110 set(XCB_COMPONENTS_ERRORS "${XCB_COMPONENTS_ERRORS} XCB-UTIL ") 0111 set(XCB_COMPONENTS_FOUND FALSE) 0112 endif() 0113 if(NOT XCB_CURSOR_FOUND) 0114 set(XCB_COMPONENTS_ERRORS "${XCB_COMPONENTS_ERRORS} XCB-CURSOR ") 0115 set(XCB_COMPONENTS_FOUND FALSE) 0116 endif() 0117 0118 # fail build if none of the platform backends can be found 0119 if (NOT XCB_FOUND OR NOT XCB_COMPONENTS_FOUND) 0120 message(FATAL_ERROR "No suitable backend platform was found. Currently supported platforms are: XCB Components Required: ${XCB_COMPONENTS_ERRORS}") 0121 endif() 0122 0123 # setup handling of deprecated Qt & KF API 0124 0125 ecm_set_disabled_deprecation_versions(QT 6.5 KF 5.240.0) 0126 0127 # hand off to subdirectories 0128 0129 add_subdirectory(src) 0130 add_subdirectory(dbus) 0131 add_subdirectory(desktop) 0132 add_subdirectory(icons) 0133 add_subdirectory(kconf_update) 0134 add_subdirectory(tests) 0135 0136 if (KF6DocTools_FOUND) 0137 add_subdirectory(doc) 0138 kdoctools_install(po) 0139 endif() 0140 ki18n_install(po) 0141 0142 ecm_qt_install_logging_categories(EXPORT SPECTACLE FILE spectacle.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) 0143 0144 # summaries 0145 0146 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) 0147 0148 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h) 0149 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 0150 0151 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)