From 1770dfbbfe3c21d64162c28aac9f500aaf1af954 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Wed, 2 Aug 2023 22:24:00 +0200 Subject: [PATCH] Make PlasmaActivities optional via ENABLE_ACTIVITIES cmake option Much easier after 7b02210b76e95455a58e554b83ffa015ab183b75 See also: https://invent.kde.org/plasma/plasma-workspace/-/issues/35 Signed-off-by: Andreas Sturmlechner (cherry picked from commit 275ffe37a463709acd396d2fc87e98454f12debc) --- CMakeLists.txt | 7 ++++++- src/plasma/CMakeLists.txt | 5 ++++- src/plasma/config-plasma.h.cmake | 1 + src/plasma/containment.cpp | 8 ++++++++ src/plasma/private/containment_p.cpp | 4 ++++ 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 76bde1f19..10ae1620c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,8 @@ include(ECMQmlModule) include(ECMGenerateQDoc) include(ECMFindQmlModule) +option(ENABLE_ACTIVITIES "Enable support for Plasma Activities in containments" ON) + ecm_setup_version(PROJECT VARIABLE_PREFIX PLASMA VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/plasma_version.h" @@ -63,7 +65,6 @@ find_package(KF6 ${KF6_MIN_VERSION} REQUIRED Svg ColorScheme ) -find_package(PlasmaActivities REQUIRED ${PROJECT_DEP_VERSION}) # Wayland features find_package(PlasmaWaylandProtocols 1.10.0 REQUIRED) @@ -71,6 +72,10 @@ find_package(Qt6WaylandClient ${QT_MIN_VERSION} REQUIRED CONFIG) find_package(Wayland 1.9 REQUIRED Client) find_package(WaylandProtocols 1.46 REQUIRED) +if(ENABLE_ACTIVITIES) + find_package(PlasmaActivities ${PROJECT_DEP_VERSION} REQUIRED) +endif() + option(WITHOUT_X11 "Build without X11 support (skips finding X11)." OFF) if(NOT WITHOUT_X11) #optional features diff --git a/src/plasma/CMakeLists.txt b/src/plasma/CMakeLists.txt index c4fb1fc41..4df68dbd8 100644 --- a/src/plasma/CMakeLists.txt +++ b/src/plasma/CMakeLists.txt @@ -101,11 +101,14 @@ PRIVATE KF6::GlobalAccel #Applet::setGlobalShortcut KF6::Notifications KF6::IconThemes - Plasma::Activities KF6::Svg ${PLASMA_EXTRA_LIBS} ) +if(ENABLE_ACTIVITIES) + target_link_libraries(Plasma PRIVATE Plasma::Activities) +endif() + target_link_libraries(Plasma PRIVATE KF6::Package) set(Plasma_BUILD_INCLUDE_DIRS diff --git a/src/plasma/config-plasma.h.cmake b/src/plasma/config-plasma.h.cmake index e3c9b61de..bb29a6511 100644 --- a/src/plasma/config-plasma.h.cmake +++ b/src/plasma/config-plasma.h.cmake @@ -1,5 +1,6 @@ #cmakedefine01 HAVE_X11 #cmakedefine01 HAVE_GLX #cmakedefine01 HAVE_EGL +#cmakedefine01 ENABLE_ACTIVITIES #define PLASMA_RELATIVE_DATA_INSTALL_DIR "@PLASMA_RELATIVE_DATA_INSTALL_DIR@" diff --git a/src/plasma/containment.cpp b/src/plasma/containment.cpp index 6cb03c772..205d47c93 100644 --- a/src/plasma/containment.cpp +++ b/src/plasma/containment.cpp @@ -27,7 +27,9 @@ #include #include +#if ENABLE_ACTIVITIES #include +#endif #include "containmentactions.h" #include "corona.h" @@ -215,7 +217,9 @@ void Containment::save(KConfigGroup &g) const group.writeEntry("lastScreen", d->lastScreen); group.writeEntry("formfactor", (int)d->formFactor); group.writeEntry("location", (int)d->location); +#if ENABLE_ACTIVITIES group.writeEntry("activityId", d->activityId); +#endif group.writeEntry("wallpaperplugin", d->wallpaperPlugin); @@ -666,10 +670,14 @@ QString Containment::activity() const QString Containment::activityName() const { +#if ENABLE_ACTIVITIES if (!d->activityInfo) { return QString(); } return d->activityInfo->name(); +#else + return QString(); +#endif } void Containment::reactToScreenChange() diff --git a/src/plasma/private/containment_p.cpp b/src/plasma/private/containment_p.cpp index 03acea215..be3430509 100644 --- a/src/plasma/private/containment_p.cpp +++ b/src/plasma/private/containment_p.cpp @@ -16,7 +16,9 @@ #include "pluginloader.h" +#if ENABLE_ACTIVITIES #include +#endif #include "debug_p.h" #include "private/applet_p.h" @@ -34,8 +36,10 @@ ContainmentPrivate::ContainmentPrivate(Containment *c) , uiReady(false) , appletsUiReady(false) { +#if ENABLE_ACTIVITIES activityInfo = new KActivities::Info(activityId, q); QObject::connect(activityInfo, &KActivities::Info::nameChanged, q, &Containment::activityNameChanged); +#endif } Plasma::ContainmentPrivate::~ContainmentPrivate() -- 2.54.0