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
|
--- meson.build.orig 2024-03-18 19:30:06 UTC
+++ meson.build
@@ -103,19 +103,52 @@ enable_session_selector = get_option('session_selector
# Check for session selector GTK+ UI
enable_session_selector = get_option('session_selector')
-session_bin_deps += dependency('gio-unix-2.0', version: glib_req_version)
+# Check for session tracking backend
+session_tracking = 'null backend'
-# Check for systemd
-systemd_userunitdir = get_option('systemduserunitdir')
-if systemd_userunitdir == ''
- systemd_dep = dependency('systemd', version: '>= 242', required: true)
- systemd_userunitdir = systemd_dep.get_variable(pkgconfig: 'systemduserunitdir',
- pkgconfig_define: ['prefix', session_prefix])
-endif
+enable_systemd = get_option('systemd')
+enable_systemd_session = get_option('systemd_session') != 'disable'
+use_systemd_session = get_option('systemd_session') == 'default'
+enable_systemd_journal = get_option('systemd_journal')
+enable_consolekit = get_option('consolekit')
+if enable_systemd or enable_consolekit
+ session_bin_deps += dependency('gio-unix-2.0', version: glib_req_version)
-libsystemd_dep = dependency('libsystemd', version: '>= 209', required: true)
-session_bin_deps += libsystemd_dep
+ # Check for systemd
+ if enable_systemd
+ systemd_userunitdir = get_option('systemduserunitdir')
+ if systemd_userunitdir == ''
+ systemd_dep = dependency('systemd', version: '>= 242', required: true)
+ systemd_userunitdir = systemd_dep.get_variable(pkgconfig: 'systemduserunitdir',
+ pkgconfig_define: ['prefix', session_prefix])
+ endif
+ libsystemd_dep = dependency('libsystemd', version: '>= 209', required: true)
+ session_bin_deps += libsystemd_dep
+
+ session_tracking = 'systemd'
+ endif
+
+ # Check for ConsoleKit
+ if enable_consolekit
+ systemd_userunitdir = ''
+
+ if enable_systemd
+ session_tracking += ' (with fallback to ConsoleKit)'
+ else
+ session_tracking = 'ConsoleKit'
+ endif
+ endif
+endif
+if enable_systemd_session
+ assert(enable_systemd, 'Systemd support must be enabled when using systemd session management')
+endif
+config_h.set('HAVE_SYSTEMD', enable_systemd)
+config_h.set('ENABLE_SYSTEMD_SESSION', enable_systemd_session)
+config_h.set('ENABLE_SYSTEMD_JOURNAL', enable_systemd_journal)
+config_h.set('HAVE_CONSOLEKIT', enable_consolekit)
+config_h.set10('USE_SYSTEMD_SESSION', use_systemd_session)
+
configure_file(
output: 'config.h',
configuration: config_h
@@ -151,6 +184,7 @@ summary_options = {
'Build manpages': get_option('man'),
'Systemd Units Directory': systemd_userunitdir,
'Session Selector Enabled': enable_session_selector,
+ 'Session tracking': session_tracking,
}
summary_dirs = {
|