Warning, /plasma/libkscreen/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16) 0002 0003 project(libkscreen) 0004 set(PROJECT_VERSION "6.0.80") 0005 0006 set(QT_MIN_VERSION "6.6.0") 0007 set(KF6_MIN_VERSION "5.240.0") 0008 set(KDE_COMPILERSETTINGS_LEVEL "5.82") 0009 0010 set(CMAKE_CXX_STANDARD 20) 0011 set(CMAKE_CXX_STANDARD_REQUIRED ON) 0012 0013 find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE) 0014 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) 0015 include(KDEInstallDirs) 0016 include(KDECompilerSettings NO_POLICY_SCOPE) 0017 include(KDECMakeSettings) 0018 include(ECMSetupVersion) 0019 include(ECMMarkAsTest) 0020 include(ECMGenerateHeaders) 0021 include(ECMGeneratePkgConfigFile) 0022 include(ECMQtDeclareLoggingCategory) 0023 include(ECMAddQch) 0024 include(ECMPoQmTools) 0025 include(FeatureSummary) 0026 include(CMakePackageConfigHelpers) 0027 include(GenerateExportHeader) 0028 include(KDEClangFormat) 0029 include(KDEGitCommitHooks) 0030 include(ECMDeprecationSettings) 0031 0032 find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED Core DBus Gui Test WaylandClient) 0033 find_package(WaylandScanner) 0034 0035 0036 find_package(PlasmaWaylandProtocols 1.11.1 CONFIG) 0037 set_package_properties(PlasmaWaylandProtocols PROPERTIES TYPE REQUIRED) 0038 0039 find_package(Wayland 1.15 COMPONENTS Client) 0040 set_package_properties(Wayland PROPERTIES 0041 TYPE REQUIRED 0042 ) 0043 0044 # xrandr backend 0045 0046 find_package(XCB COMPONENTS XCB RANDR DPMS) 0047 set_package_properties(XCB PROPERTIES 0048 TYPE OPTIONAL 0049 PURPOSE "Required for building XRandR backends" 0050 ) 0051 0052 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) 0053 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") 0054 0055 find_program(JQ NAMES "jq" DOC "jq is used in zsh completion script") 0056 if(JQ) 0057 message(STATUS "Found jq executable: ${JQ}") 0058 else() 0059 message(WARNING "jq executable not found, zsh completions won't work at their full capacity") 0060 endif() 0061 0062 ecm_setup_version(${PROJECT_VERSION} VARIABLE_PREFIX KSCREEN 0063 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kscreen_version.h" 0064 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6ScreenConfigVersion.cmake" 0065 SOVERSION 8) 0066 0067 ecm_set_disabled_deprecation_versions(QT 5.15.2 0068 KF 5.101 0069 ) 0070 0071 add_subdirectory(src) 0072 add_subdirectory(backends) 0073 if(BUILD_TESTING) 0074 add_subdirectory(autotests) 0075 add_subdirectory(tests) 0076 endif() 0077 0078 ecm_install_po_files_as_qm(poqm) 0079 0080 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6Screen") 0081 0082 # add clang-format target for all our real source files 0083 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h) 0084 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 0085 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) 0086 0087 0088 if (BUILD_QCH) 0089 ecm_install_qch_export( 0090 TARGETS KF6Screen_QCH 0091 FILE KF6ScreenQchTargets.cmake 0092 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0093 COMPONENT Devel 0094 ) 0095 set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF6ScreenQchTargets.cmake\")") 0096 endif() 0097 0098 configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/KF6ScreenConfig.cmake.in" 0099 "${CMAKE_CURRENT_BINARY_DIR}/KF6ScreenConfig.cmake" 0100 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} 0101 ) 0102 0103 install(FILES 0104 "${CMAKE_CURRENT_BINARY_DIR}/KF6ScreenConfig.cmake" 0105 "${CMAKE_CURRENT_BINARY_DIR}/KF6ScreenConfigVersion.cmake" 0106 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0107 COMPONENT Devel 0108 ) 0109 0110 install(EXPORT 0111 KF6ScreenTargets 0112 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0113 FILE KF6ScreenTargets.cmake 0114 NAMESPACE KF6:: 0115 COMPONENT Devel 0116 ) 0117 0118 install(FILES 0119 "${CMAKE_CURRENT_BINARY_DIR}/kscreen_version.h" 0120 DESTINATION "${KDE_INSTALL_INCLUDEDIR_KF}" 0121 COMPONENT Devel 0122 ) 0123 ecm_qt_install_logging_categories(EXPORT KSCREEN KSCREEN_DPMS KSCREEN_EDID FILE libkscreen.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) 0124 0125 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)