summaryrefslogtreecommitdiff
path: root/x11/gnome-session/files/patch-meson.build
blob: bab51fa48748f5f21605d60c9ee9446019c35676 (plain) (blame)
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 = {