diff options
-rw-r--r-- | CMakeLists.txt | 18 | ||||
-rw-r--r-- | src/service.c | 12 |
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 (); |