summaryrefslogtreecommitdiff
blob: 10ebcdc9f53d82d8f4241d794b3110e1c68bf04f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
From 2c09cf164f654a5ed2bc153db30710999842c7a5 Mon Sep 17 00:00:00 2001
From: Mart Raudsepp <leio@gentoo.org>
Date: Tue, 9 Apr 2019 13:16:46 +0300
Subject: [PATCH] build: add elogind support for seat retrieval

---
 meson.build            | 21 ++++++++++++---------
 meson_options.txt      |  3 ++-
 src/libgdu/gduutils.c  |  4 ++--
 src/libgdu/meson.build |  5 +----
 4 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/meson.build b/meson.build
index a5149c8e..ac641928 100644
--- a/meson.build
+++ b/meson.build
@@ -3,7 +3,7 @@ project(
   version: '3.32.0',
   license: 'GPL2.0',
   default_options: 'buildtype=debugoptimized',
-  meson_version: '>= 0.43.0'
+  meson_version: '>= 0.47.0'
 )
 
 gdu_name = 'gnome-disk-utility'
@@ -75,13 +75,16 @@ libnotify_dep = dependency('libnotify', version: '>= 0.7')
 liblzma_dep = dependency('liblzma', version: '>= 5.0.5')
 m_dep = cc.find_library('m')
 
-# *** Check for libsystemd ***
-enable_libsystemd = get_option('libsystemd')
-if enable_libsystemd
-  libsystemd_dep = dependency('libsystemd', version: '>= 209', required: false)
-  config_h.set('HAVE_LIBSYSTEMD', libsystemd_dep.found(),
-               description: 'Define to 1 if libsystemd is available')
+# *** Check for logind ***
+assert(not (get_option('libsystemd').enabled() and get_option('libelogind').enabled()), 'Can not support systemd and elogind at once')
+if not get_option('libelogind').enabled()
+  logind_dep = dependency('libsystemd', version: '>= 209', required: get_option('libsystemd'))
 endif
+if get_option('libelogind').enabled() or not logind_dep.found()
+  logind_dep = dependency('libelogind', version: '>= 209', required: get_option('libelogind'))
+endif
+config_h.set('HAVE_LOGIND', logind_dep.found(),
+             description: 'Define to 1 if logind API is available')
 
 gnome = import('gnome')
 i18n = import('i18n')
@@ -123,9 +126,9 @@ output += '        libexecdir:                 ' + gdu_libexecdir + '\n'
 output += '        localedir:                  ' + gdu_localedir + '\n'
 output += '        mandir:                     ' + gdu_mandir + '\n'
 output += '        sysconfdir:                 ' + gdu_sysconfdir + '\n\n'
-output += '        Use libsystemd:             ' + enable_libsystemd.to_string() + '\n'
+output += '        Use logind:                 ' + logind_dep.found().to_string() + '\n'
 output += '        Build g-s-d plug-in:        ' + enable_gsd_plugin.to_string() + '\n\n'
 output += '        compiler:                   ' + cc.get_id() + '\n'
 output += '        cflags:                     ' + ' '.join(compiler_flags) + '\n\n'
-output += '        (Change with: meson configure BUILDDIR -D libsystemd=true|false -D gsd_plugin=true|false)\n\n'
+output += '        (Change with: meson configure BUILDDIR -D libelogind=auto|enabled|disabled -D libsystemd=auto|enabled|disabled -D gsd_plugin=true|false)\n\n'
 message(output)
diff --git a/meson_options.txt b/meson_options.txt
index 952f5d24..895fc115 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,2 +1,3 @@
-option('libsystemd', type: 'boolean', value: true, description: 'build with libsystemd')
+option('libelogind', type: 'feature', value: 'auto', description: 'build with libelogind')
+option('libsystemd', type: 'feature', value: 'auto', description: 'build with libsystemd')
 option('gsd_plugin', type: 'boolean', value: true, description: 'build gnome-settings-daemon plug-in')
diff --git a/src/libgdu/gduutils.c b/src/libgdu/gduutils.c
index 59a26f3a..bff70304 100644
--- a/src/libgdu/gduutils.c
+++ b/src/libgdu/gduutils.c
@@ -19,7 +19,7 @@
 # include <features.h>
 #endif
 
-#if defined(HAVE_LIBSYSTEMD)
+#if defined(HAVE_LOGIND)
 #include <systemd/sd-login.h>
 #endif
 
@@ -405,7 +405,7 @@ gdu_options_update_entry_option (GtkWidget       *options_entry,
   g_free (opts);
 }
 
-#if defined(HAVE_LIBSYSTEMD)
+#if defined(HAVE_LOGIND)
 
 const gchar *
 gdu_utils_get_seat (void)
diff --git a/src/libgdu/meson.build b/src/libgdu/meson.build
index 00f7edd7..0693b229 100644
--- a/src/libgdu/meson.build
+++ b/src/libgdu/meson.build
@@ -17,14 +17,11 @@ deps = [
   udisk_dep,
   gtk_dep,
   libsecret_dep,
+  logind_dep,
   pwquality_dep,
   m_dep
 ]
 
-if enable_libsystemd
-  deps += libsystemd_dep
-endif
-
 cflags = [
   '-DPACKAGE_DATA_DIR="@0@"'.format(gdu_datadir),
   '-DG_LOG_DOMAIN="libgdu"',
-- 
2.17.0