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)