commit
dc26f6a8f8
|
@ -25,6 +25,7 @@ Install dependencies:
|
|||
* udev
|
||||
* pixman
|
||||
* systemd (optional, for logind support)
|
||||
* elogind (optional, for logind support on systems without systemd)
|
||||
* libcap (optional, for capability support)
|
||||
* asciidoc (optional, for man pages)
|
||||
|
||||
|
|
|
@ -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],
|
||||
)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -46,6 +46,7 @@ xcb = dependency('xcb')
|
|||
xcb_composite = dependency('xcb-composite')
|
||||
libcap = dependency('libcap', required: false)
|
||||
systemd = dependency('libsystemd', required: false)
|
||||
elogind = dependency('libelogind', required: false)
|
||||
math = cc.find_library('m', required: false)
|
||||
|
||||
if libcap.found() and get_option('enable_libcap')
|
||||
|
@ -56,6 +57,10 @@ if systemd.found() and get_option('enable_systemd')
|
|||
add_project_arguments('-DHAS_SYSTEMD', language: 'c')
|
||||
endif
|
||||
|
||||
if elogind.found() and get_option('enable_elogind')
|
||||
add_project_arguments('-DHAS_ELOGIND', language: 'c')
|
||||
endif
|
||||
|
||||
subdir('protocol')
|
||||
subdir('backend')
|
||||
subdir('render')
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
option('enable_libcap', type: 'boolean', value: true, description: 'Enable support for capabilities')
|
||||
option('enable_systemd', type: 'boolean', value: true, description: 'Enable support for logind')
|
||||
option('enable_elogind', type: 'boolean', value: true, description: 'Enable support for logind')
|
||||
|
|
Loading…
Reference in New Issue