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 "5.27.10")
0005 
0006 set(QT_MIN_VERSION "5.15.2")
0007 set(KF5_MIN_VERSION "5.102.0")
0008 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
0009 
0010 set(CMAKE_CXX_STANDARD 17)
0011 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0012 
0013 find_package(ECM ${KF5_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(ECMQtDeclareLoggingCategory)
0022 include(ECMAddQch)
0023 include(ECMPoQmTools)
0024 include(FeatureSummary)
0025 include(CMakePackageConfigHelpers)
0026 include(GenerateExportHeader)
0027 include(KDEClangFormat)
0028 include(KDEGitCommitHooks)
0029 include(ECMDeprecationSettings)
0030 
0031 find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED Core DBus Gui Test WaylandClient)
0032 if (QT_MAJOR_VERSION EQUAL "5")
0033   find_package(Qt5 CONFIG REQUIRED X11Extras)
0034   find_package(QtWaylandScanner REQUIRED)
0035 endif()
0036 find_package(WaylandScanner)
0037 
0038 # Wayland backend
0039 find_package(KF5Wayland ${KF5_MIN_VERSION} CONFIG REQUIRED)
0040 add_feature_info("KF5Wayland" KF5Wayland_FOUND "Required for building libkscreen's KWayland backend")
0041 find_package(KF5Config ${KF5_MIN_VERSION} CONFIG REQUIRED)
0042 
0043 find_package(PlasmaWaylandProtocols 1.10.0 CONFIG)
0044 set_package_properties(PlasmaWaylandProtocols PROPERTIES TYPE REQUIRED)
0045 
0046 find_package(Wayland 1.15 COMPONENTS Client)
0047 set_package_properties(Wayland PROPERTIES
0048                        TYPE REQUIRED
0049                       )
0050 
0051 # xrandr backend
0052 
0053 find_package(XCB COMPONENTS XCB RANDR DPMS)
0054 set_package_properties(XCB PROPERTIES
0055                        TYPE OPTIONAL
0056                        PURPOSE "Required for building XRandR backends"
0057 )
0058 
0059 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF)
0060 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)")
0061 
0062 find_program(JQ NAMES "jq" DOC "jq is used in zsh completion script")
0063 if(JQ)
0064   message(STATUS "Found jq executable: ${JQ}")
0065 else()
0066   message(WARNING "jq executable not found, zsh completions won't work at their full capacity")
0067 endif()
0068 
0069 ecm_setup_version(${PROJECT_VERSION} VARIABLE_PREFIX KSCREEN
0070                         VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kscreen_version.h"
0071                         PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5ScreenConfigVersion.cmake"
0072                         SOVERSION 8)
0073 
0074 ecm_set_disabled_deprecation_versions(QT 5.15.2
0075     KF 5.101
0076 )
0077 
0078 add_subdirectory(src)
0079 add_subdirectory(backends)
0080 if(BUILD_TESTING)
0081    add_subdirectory(autotests)
0082    add_subdirectory(tests)
0083 endif()
0084 
0085 ecm_install_po_files_as_qm(poqm)
0086 
0087 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Screen")
0088 
0089 # add clang-format target for all our real source files
0090 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0091 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0092 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0093 
0094 
0095 if (BUILD_QCH)
0096     ecm_install_qch_export(
0097         TARGETS KF5Screen_QCH
0098         FILE KF5ScreenQchTargets.cmake
0099         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0100         COMPONENT Devel
0101     )
0102     set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5ScreenQchTargets.cmake\")")
0103 endif()
0104 
0105 configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/KF5ScreenConfig.cmake.in"
0106                               "${CMAKE_CURRENT_BINARY_DIR}/KF5ScreenConfig.cmake"
0107                               INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0108 )
0109 
0110 install(FILES
0111   "${CMAKE_CURRENT_BINARY_DIR}/KF5ScreenConfig.cmake"
0112   "${CMAKE_CURRENT_BINARY_DIR}/KF5ScreenConfigVersion.cmake"
0113   DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0114   COMPONENT Devel
0115 )
0116 
0117 install(EXPORT
0118   KF5ScreenTargets
0119   DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0120   FILE KF5ScreenTargets.cmake
0121   NAMESPACE KF5::
0122   COMPONENT Devel
0123 )
0124 
0125 install(FILES
0126   "${CMAKE_CURRENT_BINARY_DIR}/kscreen_version.h"
0127   DESTINATION "${KDE_INSTALL_INCLUDEDIR_KF}"
0128   COMPONENT Devel
0129 )
0130 ecm_qt_install_logging_categories(EXPORT KSCREEN KSCREEN_DPMS KSCREEN_EDID FILE libkscreen.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR})
0131 
0132 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)