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)