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 "01") 0005 set(RELEASE_SERVICE_VERSION_MICRO "95") 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.5.2") 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 set_package_properties(KPipeWire PROPERTIES DESCRIPTION 0082 "Used to record pipewire streams into a file" 0083 TYPE REQUIRED 0084 ) 0085 0086 # optional components 0087 find_package(KF6DocTools ${KF_MIN_VERSION}) 0088 set_package_properties(KF6DocTools PROPERTIES DESCRIPTION 0089 "Tools to generate documentation" 0090 TYPE OPTIONAL 0091 ) 0092 find_package(KF6Purpose) 0093 if (KF6Purpose_FOUND) 0094 set(PURPOSE_FOUND 1) 0095 endif() 0096 0097 find_package(XCB COMPONENTS XFIXES IMAGE UTIL CURSOR RANDR) 0098 set(XCB_COMPONENTS_ERRORS FALSE) 0099 set(XCB_COMPONENTS_FOUND TRUE) 0100 if(NOT XCB_XFIXES_FOUND) 0101 set(XCB_COMPONENTS_ERRORS "${XCB_COMPONENTS_ERRORS} XCB-XFIXES ") 0102 set(XCB_COMPONENTS_FOUND FALSE) 0103 endif() 0104 if(NOT XCB_IMAGE_FOUND) 0105 set(XCB_COMPONENTS_ERRORS "${XCB_COMPONENTS_ERRORS} XCB-IMAGE ") 0106 set(XCB_COMPONENTS_FOUND FALSE) 0107 endif() 0108 if(NOT XCB_UTIL_FOUND) 0109 set(XCB_COMPONENTS_ERRORS "${XCB_COMPONENTS_ERRORS} XCB-UTIL ") 0110 set(XCB_COMPONENTS_FOUND FALSE) 0111 endif() 0112 if(NOT XCB_CURSOR_FOUND) 0113 set(XCB_COMPONENTS_ERRORS "${XCB_COMPONENTS_ERRORS} XCB-CURSOR ") 0114 set(XCB_COMPONENTS_FOUND FALSE) 0115 endif() 0116 0117 # fail build if none of the platform backends can be found 0118 if (NOT XCB_FOUND OR NOT XCB_COMPONENTS_FOUND) 0119 message(FATAL_ERROR "No suitable backend platform was found. Currently supported platforms are: XCB Components Required: ${XCB_COMPONENTS_ERRORS}") 0120 endif() 0121 0122 # setup handling of deprecated Qt & KF API 0123 0124 ecm_set_disabled_deprecation_versions(QT 6.5 KF 5.240.0) 0125 0126 # hand off to subdirectories 0127 0128 add_subdirectory(src) 0129 add_subdirectory(dbus) 0130 add_subdirectory(desktop) 0131 add_subdirectory(icons) 0132 add_subdirectory(kconf_update) 0133 add_subdirectory(tests) 0134 0135 if (KF6DocTools_FOUND) 0136 add_subdirectory(doc) 0137 kdoctools_install(po) 0138 endif() 0139 ki18n_install(po) 0140 0141 ecm_qt_install_logging_categories(EXPORT SPECTACLE FILE spectacle.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) 0142 0143 # summaries 0144 0145 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) 0146 0147 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h) 0148 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 0149 0150 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)