aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt18
-rw-r--r--src/service.c12
2 files changed, 24 insertions, 6 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c14ca59..848a1df 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,6 +14,7 @@ set (GETTEXT_PACKAGE "ayatana-indicator-session")
option(ENABLE_TESTS "Enable all tests and checks" OFF)
option(ENABLE_COVERAGE "Enable coverage reports (includes enabling all tests and checks)" OFF)
option(ENABLE_WERROR "Treat all build warnings as errors" OFF)
+option(ENABLE_RDA "Enable RDA (remote desktop awareness)" ON)
if(ENABLE_COVERAGE)
set(ENABLE_TESTS ON)
@@ -45,11 +46,18 @@ include (GNUInstallDirs)
##
find_package (PkgConfig REQUIRED)
include (FindPkgConfig)
-pkg_check_modules (SERVICE REQUIRED
- libayatana-common>=0.9.2
- glib-2.0>=2.36
- gio-unix-2.0>=2.36
- rda)
+set (SERVICE REQUIRED
+ libayatana-common>=0.9.2
+ glib-2.0>=2.36
+ gio-unix-2.0>=2.36)
+
+if (ENABLE_RDA)
+ list (APPEND SERVICE rda)
+ add_definitions (-DRDA_ENABLED)
+endif ()
+
+pkg_check_modules (SERVICE REQUIRED ${SERVICE})
+
include_directories (${SERVICE_INCLUDE_DIRS})
set (ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${PROJECT_VERSION})
diff --git a/src/service.c b/src/service.c
index 7711f97..eff36ca 100644
--- a/src/service.c
+++ b/src/service.c
@@ -22,7 +22,9 @@
#include <glib/gi18n.h>
#include <gio/gio.h>
#include <ayatana/common/utils.h>
-#include <rda/rda.h>
+#ifdef RDA_ENABLED
+# include <rda/rda.h>
+#endif /* RDA_ENABLED */
#include "backend.h"
#include "recoverable-problem.h"
#include "service.h"
@@ -885,12 +887,14 @@ create_session_section (IndicatorSessionService * self, int profile)
}
else
{
+#ifdef RDA_ENABLED
gboolean bSuspendable = rda_session_can_be_suspended ();
if (bSuspendable)
{
g_menu_append (menu, _("Suspend Remote Session"), "indicator.remotesuspend");
}
+#endif
}
return G_MENU_MODEL (menu);
@@ -1016,7 +1020,9 @@ on_logout_activated (GSimpleAction * a G_GNUC_UNUSED,
if (!self->priv->bLocal)
{
+#ifdef RDA_ENABLED
rda_session_terminate ();
+#endif /* RDA_ENABLED */
}
else
{
@@ -1099,7 +1105,9 @@ static void on_custom_activated (GSimpleAction *pAction G_GNUC_UNUSED, GVariant
static void onRemoteSuspend (GSimpleAction *pAction G_GNUC_UNUSED, GVariant *pParam G_GNUC_UNUSED, gpointer pUserData)
{
+#ifdef RDA_ENABLED
rda_session_suspend ();
+#endif /* RDA_ENABLED */
}
static void
@@ -1413,7 +1421,9 @@ indicator_session_service_init (IndicatorSessionService * self)
}
self->priv = p;
+#if RDA_ENABLED
self->priv->bLocal = rda_session_is_local ();
+#endif /* RDA_ENABLED */
/* init the backend objects */
p->cancellable = g_cancellable_new ();