build: introduce sd-bus-provider option
This allows to select a specific provider for the sd-bus library.
This commit is contained in:
parent
968c005760
commit
fdbe98512a
|
@ -24,7 +24,7 @@ tasks:
|
||||||
sudo ninja -C build install
|
sudo ninja -C build install
|
||||||
- setup: |
|
- setup: |
|
||||||
cd sway
|
cd sway
|
||||||
meson build -Dauto_features=enabled
|
meson build -Dauto_features=enabled -Dsd-bus-provider=libsystemd
|
||||||
- build: |
|
- build: |
|
||||||
cd sway
|
cd sway
|
||||||
ninja -C build
|
ninja -C build
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
#define _SWAYBAR_TRAY_TRAY_H
|
#define _SWAYBAR_TRAY_TRAY_H
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#ifdef HAVE_SYSTEMD
|
#ifdef HAVE_LIBSYSTEMD
|
||||||
#include <systemd/sd-bus.h>
|
#include <systemd/sd-bus.h>
|
||||||
#elif HAVE_ELOGIND
|
#elif HAVE_LIBELOGIND
|
||||||
#include <elogind/sd-bus.h>
|
#include <elogind/sd-bus.h>
|
||||||
#endif
|
#endif
|
||||||
#include <cairo.h>
|
#include <cairo.h>
|
||||||
|
|
32
meson.build
32
meson.build
|
@ -51,8 +51,6 @@ pixman = dependency('pixman-1')
|
||||||
glesv2 = dependency('glesv2')
|
glesv2 = dependency('glesv2')
|
||||||
libevdev = dependency('libevdev')
|
libevdev = dependency('libevdev')
|
||||||
libinput = dependency('libinput', version: '>=1.6.0')
|
libinput = dependency('libinput', version: '>=1.6.0')
|
||||||
systemd = dependency('libsystemd', version: '>=239', required: false)
|
|
||||||
elogind = dependency('libelogind', version: '>=239', required: false)
|
|
||||||
xcb = dependency('xcb', required: get_option('xwayland'))
|
xcb = dependency('xcb', required: get_option('xwayland'))
|
||||||
bash_comp = dependency('bash-completion', required: false)
|
bash_comp = dependency('bash-completion', required: false)
|
||||||
fish_comp = dependency('fish', required: false)
|
fish_comp = dependency('fish', required: false)
|
||||||
|
@ -93,9 +91,28 @@ if get_option('xwayland').enabled() and not wlroots_features['xwayland']
|
||||||
endif
|
endif
|
||||||
have_xwayland = xcb.found() and wlroots_features['xwayland']
|
have_xwayland = xcb.found() and wlroots_features['xwayland']
|
||||||
|
|
||||||
tray_deps_found = systemd.found() or elogind.found()
|
if get_option('sd-bus-provider') == 'auto'
|
||||||
|
if not get_option('tray').disabled()
|
||||||
|
assert(get_option('auto_features').auto(), 'sd-bus-provider must not be set to auto since auto_features != auto')
|
||||||
|
endif
|
||||||
|
sdbus = dependency('libsystemd',
|
||||||
|
required: false,
|
||||||
|
version: '>=239',
|
||||||
|
not_found_message: 'libsystemd not found, trying libelogind',
|
||||||
|
)
|
||||||
|
if not sdbus.found()
|
||||||
|
sdbus = dependency('libelogind',
|
||||||
|
required: false,
|
||||||
|
version: '>=239',
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
sdbus = dependency(get_option('sd-bus-provider'), required: get_option('tray'))
|
||||||
|
endif
|
||||||
|
|
||||||
|
tray_deps_found = sdbus.found()
|
||||||
if get_option('tray').enabled() and not tray_deps_found
|
if get_option('tray').enabled() and not tray_deps_found
|
||||||
error('Building with -Dtray=enabled, but libsystemd and libelogind have not been not found')
|
error('Building with -Dtray=enabled, but sd-bus has not been not found')
|
||||||
endif
|
endif
|
||||||
have_tray = (not get_option('tray').disabled()) and tray_deps_found
|
have_tray = (not get_option('tray').disabled()) and tray_deps_found
|
||||||
|
|
||||||
|
@ -103,8 +120,8 @@ conf_data = configuration_data()
|
||||||
|
|
||||||
conf_data.set10('HAVE_XWAYLAND', have_xwayland)
|
conf_data.set10('HAVE_XWAYLAND', have_xwayland)
|
||||||
conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found())
|
conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found())
|
||||||
conf_data.set10('HAVE_SYSTEMD', systemd.found())
|
conf_data.set10('HAVE_LIBSYSTEMD', sdbus.found() and sdbus.name() == 'libsystemd')
|
||||||
conf_data.set10('HAVE_ELOGIND', elogind.found())
|
conf_data.set10('HAVE_LIBELOGIND', sdbus.found() and sdbus.name() == 'libelogind')
|
||||||
conf_data.set10('HAVE_TRAY', have_tray)
|
conf_data.set10('HAVE_TRAY', have_tray)
|
||||||
|
|
||||||
scdoc = dependency('scdoc', version: '>=1.9.2', native: true, required: get_option('man-pages'))
|
scdoc = dependency('scdoc', version: '>=1.9.2', native: true, required: get_option('man-pages'))
|
||||||
|
@ -291,8 +308,7 @@ endif
|
||||||
summary({
|
summary({
|
||||||
'xwayland': have_xwayland,
|
'xwayland': have_xwayland,
|
||||||
'gdk-pixbuf': gdk_pixbuf.found(),
|
'gdk-pixbuf': gdk_pixbuf.found(),
|
||||||
'systemd': systemd.found(),
|
'sd-bus': sdbus.found(),
|
||||||
'elogind': elogind.found(),
|
|
||||||
'tray': have_tray,
|
'tray': have_tray,
|
||||||
'man-pages': scdoc.found(),
|
'man-pages': scdoc.found(),
|
||||||
}, bool_yn: true)
|
}, bool_yn: true)
|
||||||
|
|
|
@ -6,3 +6,4 @@ option('xwayland', type: 'feature', value: 'auto', description: 'Enable support
|
||||||
option('tray', type: 'feature', value: 'auto', description: 'Enable support for swaybar tray')
|
option('tray', type: 'feature', value: 'auto', description: 'Enable support for swaybar tray')
|
||||||
option('gdk-pixbuf', type: 'feature', value: 'auto', description: 'Enable support for more image formats in swaybg')
|
option('gdk-pixbuf', type: 'feature', value: 'auto', description: 'Enable support for more image formats in swaybg')
|
||||||
option('man-pages', type: 'feature', value: 'auto', description: 'Generate and install man pages')
|
option('man-pages', type: 'feature', value: 'auto', description: 'Generate and install man pages')
|
||||||
|
option('sd-bus-provider', type: 'combo', choices: ['auto', 'libsystemd', 'libelogind'], value: 'auto', description: 'Provider of the sd-bus library')
|
||||||
|
|
|
@ -19,11 +19,7 @@ swaybar_deps = [
|
||||||
wayland_cursor
|
wayland_cursor
|
||||||
]
|
]
|
||||||
if have_tray
|
if have_tray
|
||||||
if systemd.found()
|
swaybar_deps += sdbus
|
||||||
swaybar_deps += systemd
|
|
||||||
elif elogind.found()
|
|
||||||
swaybar_deps += elogind
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
executable(
|
executable(
|
||||||
|
|
Loading…
Reference in a new issue