Skip to content

Commit

Permalink
Make NetworkManagerQt and BluezQt optional
Browse files Browse the repository at this point in the history
While it is most certainly sensible and helpful on a system equipped
with Bluetooth and Wi-Fi hardware, it serves no purpose on a desktop
system without these and just pulls in a long chain of unwanted
dependencies.
  • Loading branch information
heirecka committed Jun 18, 2016
1 parent 2abee57 commit 829ab79
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 8 deletions.
25 changes: 24 additions & 1 deletion CMakeLists.txt
Expand Up @@ -22,9 +22,32 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
endif()

find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Widgets DBus X11Extras)
find_package(KF5 REQUIRED COMPONENTS Activities Auth IdleTime Config DBusAddons Solid I18n GlobalAccel KIO NotifyConfig Screen KDELibs4Support Wayland NetworkManagerQt BluezQt)
find_package(KF5 REQUIRED COMPONENTS Activities Auth IdleTime Config DBusAddons Solid I18n GlobalAccel KIO NotifyConfig Screen KDELibs4Support Wayland)
find_package(LibKWorkspace CONFIG REQUIRED)

find_package(KF5BluezQt)
set_package_properties(KF5BluezQt
PROPERTIES DESCRIPTION "Qt wrapper for BlueZ 5 DBus API"
TYPE OPTIONAL
PURPOSE "Support for wireless energy saving actions"
)
find_package(KF5NetworkManagerQt)
set_package_properties(KF5NetworkManagerQt
PROPERTIES DESCRIPTION "Qt wrapper for NetworkManager API"
TYPE OPTIONAL
PURPOSE "Support for wireless energy saving actions"
)

set(HAVE_WIRELESS_SUPPORT FALSE)
if(KF5NetworkManagerQt_FOUND AND KF5BluezQt_FOUND)
set(HAVE_WIRELESS_SUPPORT TRUE)
endif()
add_feature_info(
"Wireless power saving"
HAVE_WIRELESS_SUPPORT
"Support turning off signal-transmitting devices to save energy"
)

find_package(UDev REQUIRED)

find_package(XCB REQUIRED COMPONENTS XCB RANDR DPMS)
Expand Down
22 changes: 17 additions & 5 deletions daemon/CMakeLists.txt
Expand Up @@ -19,9 +19,14 @@ set(powerdevil_bundled_actions_SRCS
actions/bundled/dimdisplay.cpp
actions/bundled/runscript.cpp
actions/bundled/handlebuttonevents.cpp
actions/bundled/wirelesspowersaving.cpp
)

if(HAVE_WIRELESS_SUPPORT)
set(powerdevil_bundled_actions_SRCS ${powerdevil_bundled_actions_SRCS}
actions/bundled/wirelesspowersaving.cpp
)
endif()

# target no.1 - powerdevil core library
set(powerdevilcore_SRCS
powerdevil_debug.cpp
Expand Down Expand Up @@ -49,8 +54,10 @@ qt5_add_dbus_adaptor(powerdevilcore_SRCS actions/bundled/org.kde.Solid.PowerMana
actions/bundled/handlebuttonevents.h PowerDevil::BundledActions::HandleButtonEvents)
qt5_add_dbus_adaptor(powerdevilcore_SRCS actions/bundled/org.kde.Solid.PowerManagement.Actions.SuspendSession.xml
actions/bundled/suspendsession.h PowerDevil::BundledActions::SuspendSession)
qt5_add_dbus_adaptor(powerdevilcore_SRCS actions/bundled/org.kde.Solid.PowerManagement.Actions.WirelessPowerSaving.xml
actions/bundled/wirelesspowersaving.h PowerDevil::BundledActions::WirelessPowerSaving)
if(HAVE_WIRELESS_SUPPORT)
qt5_add_dbus_adaptor(powerdevilcore_SRCS actions/bundled/org.kde.Solid.PowerManagement.Actions.WirelessPowerSaving.xml
actions/bundled/wirelesspowersaving.h PowerDevil::BundledActions::WirelessPowerSaving)
endif()

add_library(powerdevilcore SHARED ${powerdevilcore_SRCS} ${powerdevil_bundled_actions_SRCS})
set_target_properties(powerdevilcore PROPERTIES VERSION ${POWERDEVIL_CORE_VERSION_STRING} SOVERSION ${POWERDEVIL_CORE_VERSION_MAJOR})
Expand All @@ -70,11 +77,16 @@ target_link_libraries(powerdevilcore
KF5::WidgetsAddons
KF5::Notifications
KF5::XmlGui
KF5::NetworkManagerQt
KF5::BluezQt
PW::KWorkspace
)

if(HAVE_WIRELESS_SUPPORT)
target_link_libraries(powerdevilcore
KF5::NetworkManagerQt
KF5::BluezQt
)
endif()

if (XCB_FOUND) # kwin kscreen helper effect
target_link_libraries(powerdevilcore Qt5::X11Extras XCB::XCB)
endif ()
Expand Down
5 changes: 3 additions & 2 deletions daemon/actions/bundled/CMakeLists.txt
Expand Up @@ -19,8 +19,9 @@ add_powerdevil_bundled_action(keyboardbrightnesscontrol)
add_powerdevil_bundled_action(dimdisplay)
add_powerdevil_bundled_action(runscript KF5::KIOCore KF5::KIOWidgets)
add_powerdevil_bundled_action(suspendsession KF5::KIOCore KF5::KIOWidgets KF5::Solid KF5::KDELibs4Support)
add_powerdevil_bundled_action(wirelesspowersaving KF5::NetworkManagerQt KF5::BluezQt)

if(HAVE_WIRELESS_SUPPORT)
add_powerdevil_bundled_action(wirelesspowersaving KF5::NetworkManagerQt KF5::BluezQt)
endif()

set(actionconfig_SRCS handlebuttoneventsconfig.cpp)
qt5_add_dbus_interface(actionconfig_SRCS
Expand Down
3 changes: 3 additions & 0 deletions daemon/config-powerdevil.h.cmake
@@ -1,2 +1,5 @@
/* Defines if you have XCB */
#cmakedefine HAVE_XCB 1

/* Define to 1 if you have NetworkManagerQt and BluezQt libs. */
#cmakedefine HAVE_WIRELESS_SUPPORT 1
6 changes: 6 additions & 0 deletions daemon/powerdevilactionpool.cpp
Expand Up @@ -24,6 +24,8 @@
#include "powerdevilcore.h"
#include "powerdevil_debug.h"

#include <config-powerdevil.h>

#include <KConfigGroup>
#include <KServiceTypeTrader>
#include <KPluginInfo>
Expand All @@ -38,7 +40,9 @@
#include "actions/bundled/dimdisplay.h"
#include "actions/bundled/runscript.h"
#include "actions/bundled/handlebuttonevents.h"
#ifdef HAVE_WIRELESS_SUPPORT
#include "actions/bundled/wirelesspowersaving.h"
#endif

namespace PowerDevil
{
Expand Down Expand Up @@ -127,7 +131,9 @@ void ActionPool::init(PowerDevil::Core *parent)
m_actionPool.insert("DimDisplay", new BundledActions::DimDisplay(parent));
m_actionPool.insert("RunScript", new BundledActions::RunScript(parent));
m_actionPool.insert("HandleButtonEvents", new BundledActions::HandleButtonEvents(parent));
#ifdef HAVE_WIRELESS_SUPPORT
m_actionPool.insert("WirelessPowerSaving", new BundledActions::WirelessPowerSaving(parent));
#endif

// Verify support
QHash<QString,Action*>::iterator i = m_actionPool.begin();
Expand Down

0 comments on commit 829ab79

Please sign in to comment.