Warning, /plasma/powerdevil/daemon/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 add_definitions(-DTRANSLATION_DOMAIN=\"powerdevil\" -DQT_USE_QSTRINGBUILDER)
0002
0003 include_directories(${CMAKE_CURRENT_SOURCE_DIR}
0004 ${CMAKE_CURRENT_BINARY_DIR})
0005
0006 add_subdirectory(actions)
0007
0008 # target no.1 - powerdevil core library
0009 set(powerdevilcore_SRCS
0010 powerdevil_debug.cpp
0011 powerdevilaction.cpp
0012 powerdevilcore.cpp
0013 powerdevilenums.cpp
0014 powerdevilmigrateconfig.cpp
0015 powerdevilpolicyagent.cpp
0016 powerdevilbrightnesslogic.cpp
0017 powerdevilscreenbrightnesslogic.cpp
0018 powerdevilkeyboardbrightnesslogic.cpp
0019 powerdevilpowermanagement.cpp
0020 powerdevilsettingsdefaults.cpp
0021 brightnessosdwidget.cpp
0022 kwinkscreenhelpereffect.cpp
0023 upowerdevice.cpp
0024 controllers/lidcontroller.cpp
0025 controllers/batterycontroller.cpp
0026 controllers/suspendcontroller.cpp
0027 controllers/keyboardbrightnesscontroller.cpp
0028 controllers/screenbrightnesscontroller.cpp
0029 controllers/backlightbrightness.cpp
0030 controllers/ddcutilbrightness.cpp
0031 controllers/ddcutildisplay.cpp
0032 controllers/udevqtclient.cpp
0033 controllers/udevqtdevice.cpp
0034 )
0035
0036 add_library(powerdevil_log_static STATIC)
0037 set_property(TARGET powerdevil_log_static PROPERTY POSITION_INDEPENDENT_CODE ON)
0038 target_link_libraries(powerdevil_log_static Qt::Core)
0039 ecm_qt_declare_logging_category(powerdevil_log_static
0040 HEADER powerdevil_debug.h
0041 IDENTIFIER POWERDEVIL
0042 CATEGORY_NAME org.kde.powerdevil
0043 DEFAULT_SEVERITY Warning
0044 DESCRIPTION "Powerdevil" EXPORT POWERDEVIL
0045 )
0046
0047 kconfig_add_kcfg_files(powerdevilcore_SRCS
0048 ${CMAKE_SOURCE_DIR}/PowerDevilGlobalSettings.kcfgc
0049 ${CMAKE_SOURCE_DIR}/PowerDevilProfileSettings.kcfgc
0050 ${CMAKE_SOURCE_DIR}/PowerDevilActivitySettings.kcfgc
0051 GENERATE_MOC
0052 )
0053
0054 # Action DBus Adaptors
0055
0056 set_source_files_properties(
0057 dbus/org.freedesktop.UPower.xml
0058 dbus/org.freedesktop.UPower.Device.xml
0059 PROPERTIES NO_NAMESPACE TRUE
0060 )
0061
0062 qt_add_dbus_interface(powerdevilcore_SRCS dbus/org.freedesktop.ScreenSaver.xml screenlocker_interface)
0063
0064 qt_add_dbus_interface(powerdevilcore_SRCS dbus/org.freedesktop.UPower.xml upower_interface)
0065
0066 qt_add_dbus_interface(powerdevilcore_SRCS dbus/org.freedesktop.UPower.KbdBacklight.xml upower_kbdbacklight_interface)
0067
0068 add_library(powerdevilcore SHARED ${powerdevilcore_SRCS})
0069 set_target_properties(powerdevilcore PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION 2)
0070
0071 generate_export_header(powerdevilcore)
0072
0073 # not exported, so just make the deps public
0074 target_link_libraries(powerdevilcore
0075 Plasma::Activities
0076 Qt::DBus
0077 PW::KWorkspace
0078 KF6::CoreAddons
0079 KF6::AuthCore
0080 KF6::ConfigCore
0081 KF6::ConfigGui
0082 KF6::DBusAddons
0083 KF6::I18n
0084 KF6::Solid
0085 KF6::IdleTime
0086 KF6::GlobalAccel
0087 KF6::Screen
0088 KF6::Service
0089 KF6::Notifications
0090 KF6::XmlGui
0091 KF6::KirigamiPlatform
0092 XCB::DPMS
0093 powerdevil_log_static
0094 ${UDEV_LIBS}
0095 )
0096
0097 if (XCB_FOUND) # kwin kscreen helper effect
0098 target_link_libraries(powerdevilcore XCB::XCB Qt::GuiPrivate)
0099 endif ()
0100
0101 if(DDCUTIL_FOUND)
0102 target_link_libraries(powerdevilcore ${LIBDDCUTIL_LIBRARY})
0103 endif()
0104
0105 # target no.2 - powerdevil kded module
0106 set(powerdevil_SRCS
0107 powerdevil_debug.cpp
0108 powerdevilapp.cpp
0109 powerdevilfdoconnector.cpp
0110 )
0111
0112 # DBus Adaptors
0113 qt_add_dbus_adaptor(powerdevil_SRCS dbus/org.kde.Solid.PowerManagement.xml powerdevilcore.h PowerDevil::Core)
0114 qt_add_dbus_adaptor(powerdevil_SRCS dbus/org.kde.Solid.PowerManagement.PolicyAgent.xml
0115 powerdevilpolicyagent.h PowerDevil::PolicyAgent
0116 powermanagementpolicyagentadaptor PowerManagementPolicyAgentAdaptor)
0117
0118 qt_add_dbus_adaptor(powerdevil_SRCS dbus/org.freedesktop.PowerManagement.xml powerdevilfdoconnector.h PowerDevil::FdoConnector powermanagementfdoadaptor PowerManagementFdoAdaptor)
0119 qt_add_dbus_adaptor(powerdevil_SRCS dbus/org.freedesktop.PowerManagement.Inhibit.xml powerdevilfdoconnector.h PowerDevil::FdoConnector powermanagementinhibitadaptor PowerManagementInhibitAdaptor)
0120
0121 # KAuth charge threshold helper
0122 add_executable(chargethresholdhelper chargethresholdhelper.cpp powerdevil_debug.cpp ${chargethresholdhelper_mocs})
0123 target_link_libraries(chargethresholdhelper Qt::Core KF6::AuthCore)
0124 install(TARGETS chargethresholdhelper DESTINATION ${KAUTH_HELPER_INSTALL_DIR})
0125 kauth_install_helper_files(chargethresholdhelper org.kde.powerdevil.chargethresholdhelper root)
0126 kauth_install_actions(org.kde.powerdevil.chargethresholdhelper chargethreshold_helper_actions.actions)
0127
0128 ## discrete gpu helper executable
0129 add_executable(discretegpuhelper discretegpuhelper.cpp ${CMAKE_BINARY_DIR}/daemon/powerdevil_debug.cpp)
0130 target_link_libraries(discretegpuhelper Qt::Core KF6::AuthCore)
0131 install(TARGETS discretegpuhelper DESTINATION ${KAUTH_HELPER_INSTALL_DIR})
0132 kauth_install_helper_files(discretegpuhelper org.kde.powerdevil.discretegpuhelper root)
0133 kauth_install_actions(org.kde.powerdevil.discretegpuhelper discretegpu_helper_actions.actions)
0134
0135
0136 ## backlight helper executable
0137 set(backlighthelpers_SRCS ${CMAKE_BINARY_DIR}/daemon/powerdevil_debug.cpp)
0138 if (CMAKE_SYSTEM_NAME STREQUAL FreeBSD)
0139 list(APPEND backlighthelpers_SRCS controllers/backlighthelper_freebsd.cpp)
0140 else()
0141 list(APPEND backlighthelpers_SRCS controllers/backlighthelper_linux.cpp)
0142 endif()
0143
0144 add_executable(backlighthelper ${backlighthelpers_SRCS})
0145 target_link_libraries(backlighthelper Qt::Core KF6::AuthCore KF6::I18n)
0146 install(TARGETS backlighthelper DESTINATION ${KAUTH_HELPER_INSTALL_DIR})
0147 kauth_install_helper_files(backlighthelper org.kde.powerdevil.backlighthelper root)
0148 kauth_install_actions(org.kde.powerdevil.backlighthelper controllers/backlight_helper_actions.actions)
0149
0150
0151 add_executable(powerdevil ${powerdevil_SRCS})
0152 set_target_properties(powerdevil PROPERTIES OUTPUT_NAME org_kde_powerdevil)
0153 configure_file(powerdevil.desktop.cmake
0154 ${CMAKE_CURRENT_BINARY_DIR}/powerdevil.desktop)
0155
0156 target_link_libraries(powerdevil
0157 KF6::Crash
0158 KF6::ConfigCore
0159 KF6::CoreAddons
0160 KF6::I18n
0161 KF6::DBusAddons
0162 PW::KWorkspace
0163 powerdevilcore
0164 )
0165 if (XCB_FOUND)
0166 target_link_libraries(powerdevil Qt::GuiPrivate)
0167 endif ()
0168
0169 target_link_libraries(powerdevil ${UDEV_LIBS})
0170
0171 install(TARGETS powerdevil DESTINATION ${KDE_INSTALL_FULL_LIBEXECDIR})
0172 if (HAVE_LIBCAP)
0173 install(
0174 CODE "execute_process(
0175 COMMAND
0176 ${SETCAP_EXECUTABLE}
0177 CAP_WAKE_ALARM=+ep
0178 \$ENV{DESTDIR}${KDE_INSTALL_FULL_LIBEXECDIR}/org_kde_powerdevil)"
0179 )
0180 endif()
0181
0182 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/powerdevil.desktop
0183 DESTINATION ${KDE_INSTALL_AUTOSTARTDIR})
0184 install(TARGETS powerdevilcore ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0185
0186 set(HAVE_XCB ${XCB_FOUND})
0187 configure_file(config-powerdevil.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-powerdevil.h )
0188
0189 ecm_install_configured_files(INPUT plasma-powerdevil.service.in @ONLY DESTINATION
0190 ${KDE_INSTALL_SYSTEMDUSERUNITDIR})