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)