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     powerdevilbackendinterface.cpp
0013     powerdevilcore.cpp
0014     powerdevilenums.cpp
0015     powerdevilmigrateconfig.cpp
0016     powerdevilpolicyagent.cpp
0017     powerdevilbrightnesslogic.cpp
0018     powerdevilscreenbrightnesslogic.cpp
0019     powerdevilkeyboardbrightnesslogic.cpp
0020     powerdevilpowermanagement.cpp
0021     powerdevilsettingsdefaults.cpp
0022     brightnessosdwidget.cpp
0023     kwinkscreenhelpereffect.cpp
0024     suspendcontroller.cpp
0025     batterycontroller.cpp
0026     upowerdevice.cpp
0027     lidcontroller.cpp
0028 )
0029 
0030 add_library(powerdevil_log_static STATIC)
0031 set_property(TARGET powerdevil_log_static PROPERTY POSITION_INDEPENDENT_CODE ON)
0032 target_link_libraries(powerdevil_log_static Qt::Core)
0033 ecm_qt_declare_logging_category(powerdevil_log_static
0034    HEADER powerdevil_debug.h
0035    IDENTIFIER POWERDEVIL
0036    CATEGORY_NAME org.kde.powerdevil
0037    DEFAULT_SEVERITY Warning
0038    DESCRIPTION "Powerdevil" EXPORT POWERDEVIL
0039 )
0040 
0041 kconfig_add_kcfg_files(powerdevilcore_SRCS
0042     ${CMAKE_SOURCE_DIR}/PowerDevilGlobalSettings.kcfgc
0043     ${CMAKE_SOURCE_DIR}/PowerDevilProfileSettings.kcfgc
0044     ${CMAKE_SOURCE_DIR}/PowerDevilActivitySettings.kcfgc
0045     GENERATE_MOC
0046 )
0047 
0048 # Action DBus Adaptors
0049 
0050 qt_add_dbus_interface(powerdevilcore_SRCS org.freedesktop.ScreenSaver.xml screenlocker_interface)
0051 
0052 qt_add_dbus_interface(powerdevilcore_SRCS
0053     backends/upower/dbus/org.freedesktop.UPower.xml
0054     upower_interface
0055 )
0056 
0057 add_library(powerdevilcore SHARED ${powerdevilcore_SRCS} powerdevil_debug.cpp)
0058 set_target_properties(powerdevilcore PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION 2)
0059 
0060 generate_export_header(powerdevilcore)
0061 
0062 # not exported, so just make the deps public
0063 target_link_libraries(powerdevilcore
0064     Plasma::Activities
0065     KF6::AuthCore
0066     KF6::ConfigCore
0067     KF6::ConfigGui
0068     KF6::DBusAddons
0069     KF6::I18n
0070     KF6::Solid
0071     KF6::IdleTime
0072     KF6::GlobalAccel
0073     KF6::Screen
0074     KF6::Service
0075     KF6::Notifications
0076     KF6::XmlGui
0077     KF6::KirigamiPlatform
0078     PW::KWorkspace
0079     XCB::DPMS
0080     powerdevil_log_static
0081 )
0082 
0083 if (XCB_FOUND) # kwin kscreen helper effect
0084     target_link_libraries(powerdevilcore XCB::XCB Qt::GuiPrivate)
0085 endif ()
0086 
0087 # target no.2 - powerdevil kded module
0088 set(powerdevil_SRCS
0089     powerdevil_debug.cpp
0090     powerdevilapp.cpp
0091     powerdevilfdoconnector.cpp
0092 )
0093 
0094 # DBus Adaptors
0095 qt_add_dbus_adaptor(powerdevil_SRCS org.kde.Solid.PowerManagement.xml powerdevilcore.h PowerDevil::Core)
0096 qt_add_dbus_adaptor(powerdevil_SRCS org.kde.Solid.PowerManagement.PolicyAgent.xml
0097                                          powerdevilpolicyagent.h PowerDevil::PolicyAgent
0098                                          powermanagementpolicyagentadaptor PowerManagementPolicyAgentAdaptor)
0099 
0100 qt_add_dbus_adaptor(powerdevil_SRCS org.freedesktop.PowerManagement.xml powerdevilfdoconnector.h PowerDevil::FdoConnector powermanagementfdoadaptor PowerManagementFdoAdaptor)
0101 qt_add_dbus_adaptor(powerdevil_SRCS org.freedesktop.PowerManagement.Inhibit.xml powerdevilfdoconnector.h PowerDevil::FdoConnector powermanagementinhibitadaptor PowerManagementInhibitAdaptor)
0102 
0103 # KAuth charge threshold helper
0104 add_executable(chargethresholdhelper chargethresholdhelper.cpp powerdevil_debug.cpp ${chargethresholdhelper_mocs})
0105 target_link_libraries(chargethresholdhelper Qt::Core KF6::AuthCore)
0106 install(TARGETS chargethresholdhelper DESTINATION ${KAUTH_HELPER_INSTALL_DIR})
0107 kauth_install_helper_files(chargethresholdhelper org.kde.powerdevil.chargethresholdhelper root)
0108 kauth_install_actions(org.kde.powerdevil.chargethresholdhelper chargethreshold_helper_actions.actions)
0109 
0110 ## discrete gpu helper executable
0111 add_executable(discretegpuhelper discretegpuhelper.cpp ${CMAKE_BINARY_DIR}/daemon/powerdevil_debug.cpp)
0112 target_link_libraries(discretegpuhelper Qt::Core KF6::AuthCore)
0113 install(TARGETS discretegpuhelper DESTINATION ${KAUTH_HELPER_INSTALL_DIR})
0114 kauth_install_helper_files(discretegpuhelper org.kde.powerdevil.discretegpuhelper root)
0115 kauth_install_actions(org.kde.powerdevil.discretegpuhelper discretegpu_helper_actions.actions)
0116 
0117 # Backends
0118 add_subdirectory(backends)
0119 
0120 add_executable(powerdevil ${powerdevil_SRCS})
0121 set_target_properties(powerdevil PROPERTIES OUTPUT_NAME org_kde_powerdevil)
0122 configure_file(powerdevil.desktop.cmake
0123                ${CMAKE_CURRENT_BINARY_DIR}/powerdevil.desktop)
0124 
0125 target_link_libraries(powerdevil
0126     KF6::Crash
0127     KF6::ConfigCore
0128     KF6::CoreAddons
0129     KF6::I18n
0130     KF6::DBusAddons
0131     PW::KWorkspace
0132     powerdevilcore
0133 )
0134 if (XCB_FOUND)
0135     target_link_libraries(powerdevil Qt::GuiPrivate)
0136 endif ()
0137 
0138 target_link_libraries(powerdevil ${UDEV_LIBS})
0139 
0140 install(TARGETS powerdevil DESTINATION ${KDE_INSTALL_FULL_LIBEXECDIR})
0141 if (HAVE_LIBCAP)
0142     install(
0143     CODE "execute_process(
0144             COMMAND
0145                 ${SETCAP_EXECUTABLE}
0146                 CAP_WAKE_ALARM=+ep
0147                 \$ENV{DESTDIR}${KDE_INSTALL_FULL_LIBEXECDIR}/org_kde_powerdevil)"
0148     )
0149 endif()
0150 
0151 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/powerdevil.desktop
0152         DESTINATION ${KDE_INSTALL_AUTOSTARTDIR})
0153 install(TARGETS powerdevilcore ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0154 
0155 set(HAVE_XCB ${XCB_FOUND})
0156 configure_file(config-powerdevil.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-powerdevil.h )
0157 
0158 ecm_install_configured_files(INPUT plasma-powerdevil.service.in @ONLY DESTINATION
0159         ${KDE_INSTALL_SYSTEMDUSERUNITDIR})