Warning, /plasma/powerdevil/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 cmake_minimum_required(VERSION 3.16)
0002 
0003 project(PowerDevil)
0004 set(PROJECT_VERSION "5.27.10")
0005 set(PROJECT_VERSION_MAJOR 5)
0006 
0007 set(QT_MIN_VERSION "5.15.2")
0008 set(KF5_MIN_VERSION "5.102.0")
0009 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
0010 
0011 set(CMAKE_CXX_STANDARD 17)
0012 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0013 
0014 find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
0015 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}  ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
0016 
0017 include(ECMSetupVersion)
0018 include(ECMQtDeclareLoggingCategory)
0019 include(ECMConfiguredInstall)
0020 include(FeatureSummary)
0021 include(KDEInstallDirs)
0022 include(KDECMakeSettings)
0023 include(KDECompilerSettings NO_POLICY_SCOPE)
0024 include(KDEClangFormat)
0025 include(ECMDeprecationSettings)
0026 
0027 find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Widgets DBus)
0028 if (QT_MAJOR_VERSION EQUAL "5")
0029     find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED X11Extras)
0030 endif()
0031 find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Activities Auth IdleTime Config DBusAddons Solid I18n GlobalAccel KIO NotifyConfig DocTools Crash Notifications Kirigami2 KCMUtils)
0032 find_package(KF5Screen CONFIG REQUIRED)
0033 find_package(LibKWorkspace CONFIG REQUIRED)
0034 
0035 find_package(KF5BluezQt ${KF5_MIN_VERSION})
0036 set_package_properties(KF5BluezQt
0037     PROPERTIES DESCRIPTION "Qt wrapper for BlueZ 5 DBus API"
0038     TYPE OPTIONAL
0039     PURPOSE "Support for wireless energy saving actions"
0040 )
0041 find_package(KF5NetworkManagerQt ${KF5_MIN_VERSION})
0042 set_package_properties(KF5NetworkManagerQt
0043     PROPERTIES DESCRIPTION "Qt wrapper for NetworkManager API"
0044     TYPE OPTIONAL
0045     PURPOSE "Support for wireless energy saving actions"
0046 )
0047 
0048 set(HAVE_WIRELESS_SUPPORT FALSE)
0049 if(KF5NetworkManagerQt_FOUND AND KF5BluezQt_FOUND)
0050     set(HAVE_WIRELESS_SUPPORT TRUE)
0051 endif()
0052 add_feature_info(
0053     "Wireless power saving"
0054     HAVE_WIRELESS_SUPPORT
0055     "Support turning off signal-transmitting devices to save energy"
0056 )
0057 
0058 find_package(LibKWorkspace ${PROJECT_VERSION} REQUIRED)
0059 
0060 find_package(UDev REQUIRED)
0061 
0062 find_package(XCB REQUIRED COMPONENTS XCB RANDR DPMS)
0063 
0064 find_package(Libcap)
0065 set_package_properties(Libcap PROPERTIES
0066     TYPE OPTIONAL
0067     PURPOSE "Needed for scheduled wakeup which can wake from suspend (CAP_WAKE_ALARM)"
0068 )
0069 set(HAVE_LIBCAP ${Libcap_FOUND})
0070 
0071 option(HAVE_DDCUTIL "DDCUtil library support" OFF)
0072 if(HAVE_DDCUTIL)
0073     find_package(DDCUtil REQUIRED)
0074     add_definitions(-DWITH_DDCUTIL)
0075     set_package_properties(DDCUtil
0076         PROPERTIES DESCRIPTION "DDCUtil library support"
0077         TYPE OPTIONAL
0078         PURPOSE "Set monitor settings over DDC/CI channel"
0079     )
0080 else()
0081     add_feature_info("DDCUtil" HAVE_DDCUTIL "DDCUtil library support is disabled by default as recommended by authors, add -DHAVE_DDCUTIL=On to enable")
0082 endif()
0083 
0084 include_directories (
0085     ${CMAKE_CURRENT_BINARY_DIR}
0086     ${CMAKE_CURRENT_SOURCE_DIR}/daemon
0087 )
0088 
0089 add_definitions(-DQT_NO_KEYWORDS)
0090 add_definitions(-DQT_NO_FOREACH)
0091 
0092 ecm_setup_version(${PROJECT_VERSION} VARIABLE_PREFIX POWERDEVIL
0093                   VERSION_HEADER "${CMAKE_BINARY_DIR}/powerdevil_version.h"
0094 )
0095 ecm_set_disabled_deprecation_versions(QT 5.15.2
0096     KF 5.101
0097 )
0098 
0099 add_subdirectory(daemon)
0100 add_subdirectory(kcmodule)
0101 add_subdirectory(doc)
0102 kdoctools_install(po)
0103 
0104 ecm_qt_install_logging_categories(
0105         EXPORT POWERDEVIL
0106         FILE powerdevil.categories
0107         DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0108         )
0109 install( FILES powerdevil.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR} )
0110 
0111 # add clang-format target for all our real source files
0112 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0113 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0114 
0115 ki18n_install(po)
0116 
0117 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)