diff options
-rw-r--r-- | .builds/archlinux.yml | 2 | ||||
-rw-r--r-- | include/swaybar/tray/tray.h | 4 | ||||
-rw-r--r-- | meson.build | 32 | ||||
-rw-r--r-- | meson_options.txt | 1 | ||||
-rw-r--r-- | swaybar/meson.build | 6 |
5 files changed, 29 insertions, 16 deletions
diff --git a/.builds/archlinux.yml b/.builds/archlinux.yml index dfe1900e..ad47a9c9 100644 --- a/.builds/archlinux.yml +++ b/.builds/archlinux.yml | |||
@@ -24,7 +24,7 @@ tasks: | |||
24 | sudo ninja -C build install | 24 | sudo ninja -C build install |
25 | - setup: | | 25 | - setup: | |
26 | cd sway | 26 | cd sway |
27 | meson build -Dauto_features=enabled | 27 | meson build -Dauto_features=enabled -Dsd-bus-provider=libsystemd |
28 | - build: | | 28 | - build: | |
29 | cd sway | 29 | cd sway |
30 | ninja -C build | 30 | ninja -C build |
diff --git a/include/swaybar/tray/tray.h b/include/swaybar/tray/tray.h index 8958b69a..b5df0025 100644 --- a/include/swaybar/tray/tray.h +++ b/include/swaybar/tray/tray.h | |||
@@ -2,9 +2,9 @@ | |||
2 | #define _SWAYBAR_TRAY_TRAY_H | 2 | #define _SWAYBAR_TRAY_TRAY_H |
3 | 3 | ||
4 | #include "config.h" | 4 | #include "config.h" |
5 | #ifdef HAVE_SYSTEMD | 5 | #ifdef HAVE_LIBSYSTEMD |
6 | #include <systemd/sd-bus.h> | 6 | #include <systemd/sd-bus.h> |
7 | #elif HAVE_ELOGIND | 7 | #elif HAVE_LIBELOGIND |
8 | #include <elogind/sd-bus.h> | 8 | #include <elogind/sd-bus.h> |
9 | #endif | 9 | #endif |
10 | #include <cairo.h> | 10 | #include <cairo.h> |
diff --git a/meson.build b/meson.build index ee2fdaaa..9842d78a 100644 --- a/meson.build +++ b/meson.build | |||
@@ -51,8 +51,6 @@ pixman = dependency('pixman-1') | |||
51 | glesv2 = dependency('glesv2') | 51 | glesv2 = dependency('glesv2') |
52 | libevdev = dependency('libevdev') | 52 | libevdev = dependency('libevdev') |
53 | libinput = dependency('libinput', version: '>=1.6.0') | 53 | libinput = dependency('libinput', version: '>=1.6.0') |
54 | systemd = dependency('libsystemd', version: '>=239', required: false) | ||
55 | elogind = dependency('libelogind', version: '>=239', required: false) | ||
56 | xcb = dependency('xcb', required: get_option('xwayland')) | 54 | xcb = dependency('xcb', required: get_option('xwayland')) |
57 | bash_comp = dependency('bash-completion', required: false) | 55 | bash_comp = dependency('bash-completion', required: false) |
58 | fish_comp = dependency('fish', required: false) | 56 | fish_comp = dependency('fish', required: false) |
@@ -93,9 +91,28 @@ if get_option('xwayland').enabled() and not wlroots_features['xwayland'] | |||
93 | endif | 91 | endif |
94 | have_xwayland = xcb.found() and wlroots_features['xwayland'] | 92 | have_xwayland = xcb.found() and wlroots_features['xwayland'] |
95 | 93 | ||
96 | tray_deps_found = systemd.found() or elogind.found() | 94 | if get_option('sd-bus-provider') == 'auto' |
95 | if not get_option('tray').disabled() | ||
96 | assert(get_option('auto_features').auto(), 'sd-bus-provider must not be set to auto since auto_features != auto') | ||
97 | endif | ||
98 | sdbus = dependency('libsystemd', | ||
99 | required: false, | ||
100 | version: '>=239', | ||
101 | not_found_message: 'libsystemd not found, trying libelogind', | ||
102 | ) | ||
103 | if not sdbus.found() | ||
104 | sdbus = dependency('libelogind', | ||
105 | required: false, | ||
106 | version: '>=239', | ||
107 | ) | ||
108 | endif | ||
109 | else | ||
110 | sdbus = dependency(get_option('sd-bus-provider'), required: get_option('tray')) | ||
111 | endif | ||
112 | |||
113 | tray_deps_found = sdbus.found() | ||
97 | if get_option('tray').enabled() and not tray_deps_found | 114 | if get_option('tray').enabled() and not tray_deps_found |
98 | error('Building with -Dtray=enabled, but libsystemd and libelogind have not been not found') | 115 | error('Building with -Dtray=enabled, but sd-bus has not been not found') |
99 | endif | 116 | endif |
100 | have_tray = (not get_option('tray').disabled()) and tray_deps_found | 117 | have_tray = (not get_option('tray').disabled()) and tray_deps_found |
101 | 118 | ||
@@ -103,8 +120,8 @@ conf_data = configuration_data() | |||
103 | 120 | ||
104 | conf_data.set10('HAVE_XWAYLAND', have_xwayland) | 121 | conf_data.set10('HAVE_XWAYLAND', have_xwayland) |
105 | conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found()) | 122 | conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found()) |
106 | conf_data.set10('HAVE_SYSTEMD', systemd.found()) | 123 | conf_data.set10('HAVE_LIBSYSTEMD', sdbus.found() and sdbus.name() == 'libsystemd') |
107 | conf_data.set10('HAVE_ELOGIND', elogind.found()) | 124 | conf_data.set10('HAVE_LIBELOGIND', sdbus.found() and sdbus.name() == 'libelogind') |
108 | conf_data.set10('HAVE_TRAY', have_tray) | 125 | conf_data.set10('HAVE_TRAY', have_tray) |
109 | 126 | ||
110 | scdoc = dependency('scdoc', version: '>=1.9.2', native: true, required: get_option('man-pages')) | 127 | scdoc = dependency('scdoc', version: '>=1.9.2', native: true, required: get_option('man-pages')) |
@@ -291,8 +308,7 @@ endif | |||
291 | summary({ | 308 | summary({ |
292 | 'xwayland': have_xwayland, | 309 | 'xwayland': have_xwayland, |
293 | 'gdk-pixbuf': gdk_pixbuf.found(), | 310 | 'gdk-pixbuf': gdk_pixbuf.found(), |
294 | 'systemd': systemd.found(), | 311 | 'sd-bus': sdbus.found(), |
295 | 'elogind': elogind.found(), | ||
296 | 'tray': have_tray, | 312 | 'tray': have_tray, |
297 | 'man-pages': scdoc.found(), | 313 | 'man-pages': scdoc.found(), |
298 | }, bool_yn: true) | 314 | }, bool_yn: true) |
diff --git a/meson_options.txt b/meson_options.txt index d3667acf..66c6d268 100644 --- a/meson_options.txt +++ b/meson_options.txt | |||
@@ -6,3 +6,4 @@ option('xwayland', type: 'feature', value: 'auto', description: 'Enable support | |||
6 | option('tray', type: 'feature', value: 'auto', description: 'Enable support for swaybar tray') | 6 | option('tray', type: 'feature', value: 'auto', description: 'Enable support for swaybar tray') |
7 | option('gdk-pixbuf', type: 'feature', value: 'auto', description: 'Enable support for more image formats in swaybg') | 7 | option('gdk-pixbuf', type: 'feature', value: 'auto', description: 'Enable support for more image formats in swaybg') |
8 | option('man-pages', type: 'feature', value: 'auto', description: 'Generate and install man pages') | 8 | option('man-pages', type: 'feature', value: 'auto', description: 'Generate and install man pages') |
9 | option('sd-bus-provider', type: 'combo', choices: ['auto', 'libsystemd', 'libelogind'], value: 'auto', description: 'Provider of the sd-bus library') | ||
diff --git a/swaybar/meson.build b/swaybar/meson.build index 469145ae..9feb3cd2 100644 --- a/swaybar/meson.build +++ b/swaybar/meson.build | |||
@@ -19,11 +19,7 @@ swaybar_deps = [ | |||
19 | wayland_cursor | 19 | wayland_cursor |
20 | ] | 20 | ] |
21 | if have_tray | 21 | if have_tray |
22 | if systemd.found() | 22 | swaybar_deps += sdbus |
23 | swaybar_deps += systemd | ||
24 | elif elogind.found() | ||
25 | swaybar_deps += elogind | ||
26 | endif | ||
27 | endif | 23 | endif |
28 | 24 | ||
29 | executable( | 25 | executable( |