aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/meson.build6
-rw-r--r--backend/session/logind.c10
-rw-r--r--backend/session/session.c2
3 files changed, 15 insertions, 3 deletions
diff --git a/backend/meson.build b/backend/meson.build
index eb8c5d8b..a3cb7b64 100644
--- a/backend/meson.build
+++ b/backend/meson.build
@@ -28,9 +28,13 @@ if systemd.found()
backend_files += files('session/logind.c')
endif
+if elogind.found()
+ backend_files += files('session/logind.c')
+endif
+
lib_wlr_backend = static_library(
'wlr_backend',
backend_files,
include_directories: wlr_inc,
- dependencies: [wayland_server, egl, gbm, libinput, systemd, wlr_protos],
+ dependencies: [wayland_server, egl, gbm, libinput, systemd, elogind, wlr_protos],
)
diff --git a/backend/session/logind.c b/backend/session/logind.c
index 3b237360..42b48e94 100644
--- a/backend/session/logind.c
+++ b/backend/session/logind.c
@@ -5,8 +5,6 @@
#include <stdlib.h>
#include <string.h>
#include <errno.h>
-#include <systemd/sd-bus.h>
-#include <systemd/sd-login.h>
#include <unistd.h>
#include <sys/sysmacros.h>
#include <sys/stat.h>
@@ -15,6 +13,14 @@
#include <wlr/backend/session/interface.h>
#include <wlr/util/log.h>
+#ifdef HAS_SYSTEMD
+ #include <systemd/sd-bus.h>
+ #include <systemd/sd-login.h>
+#elif HAS_ELOGIND
+ #include <elogind/sd-bus.h>
+ #include <elogind/sd-login.h>
+#endif
+
enum { DRM_MAJOR = 226 };
const struct session_impl session_logind;
diff --git a/backend/session/session.c b/backend/session/session.c
index c9bc1397..cfa617f6 100644
--- a/backend/session/session.c
+++ b/backend/session/session.c
@@ -18,6 +18,8 @@ extern const struct session_impl session_direct;
static const struct session_impl *impls[] = {
#ifdef HAS_SYSTEMD
&session_logind,
+#elif HAS_ELOGIND
+ &session_logind,
#endif
&session_direct,
NULL,