diff options
author | Mike Gorse <mgorse@suse.com> | 2023-05-11 15:18:54 -0500 |
---|---|---|
committer | Mike Gorse <mgorse@suse.com> | 2023-05-11 15:18:54 -0500 |
commit | f72aa7bfe70c32cd98ebdea379586ae4441e1e4b (patch) | |
tree | 803aa2e2143922b39dea7a5207bb5df33b86ca38 | |
parent | d80c3b578ed595cb53b92f0c5fcb3d10c29c6dd5 (diff) | |
download | at-spi2-core-f72aa7bfe70c32cd98ebdea379586ae4441e1e4b.tar.gz |
More build fixes
My last commit broke the build where dbus-daemon was set to be used by default.
Added a use_systemd option that can be set to false to disable systemd. This
cannot be used in combination with dbus-broker and results in dbus-broker
support being disabled. If this option is left set to true, then dbus-broker
support will be enabled if dbus-broker-launch is found on the system, although
dbus-daemon will still be used when available unless default_bus is set to
dbus-broker.
Fixes #116
-rw-r--r-- | bus/meson.build | 43 | ||||
-rw-r--r-- | meson_options.txt | 4 |
2 files changed, 36 insertions, 11 deletions
diff --git a/bus/meson.build b/bus/meson.build index 381f1164..4c0d5f31 100644 --- a/bus/meson.build +++ b/bus/meson.build @@ -47,7 +47,7 @@ launcher_args = [ ] if get_option('dbus_daemon') != 'default' - launcher_args += '-DDBUS_DAEMON="@0@"'.format(get_option('dbus_daemon')) + dbus_daemon_arg = '-DDBUS_DAEMON="@0@"'.format(get_option('dbus_daemon')) else dbus_daemon = find_program('dbus-daemon', '/sbin/dbus-daemon', @@ -58,37 +58,58 @@ else '/usr/pkg/bin/dbus-daemon', required: false) if dbus_daemon.found() - launcher_args += '-DDBUS_DAEMON="@0@"'.format(dbus_daemon.full_path()) + dbus_daemon_arg = '-DDBUS_DAEMON="@0@"'.format(dbus_daemon.full_path()) + else + dbus_daemon_arg = '' endif endif needs_systemd = false if get_option('dbus_broker') != 'default' - launcher_args += '-DDBUS_BROKER="@0@"'.format(get_option('dbus_broker')) - if get_option('default_bus') != 'dbus-daemon' - needs_systemd = true - endif + dbus_broker_arg = '-DDBUS_BROKER="@0@"'.format(get_option('dbus_broker')) + needs_systemd = true else dbus_broker = find_program('dbus-broker-launch', required: false) if dbus_broker.found() - launcher_args += '-DDBUS_BROKER="@0@"'.format(dbus_broker.full_path()) + dbus_broker_arg = '-DDBUS_BROKER="@0@"'.format(dbus_broker.full_path()) if get_option('default_bus') != 'dbus-daemon' needs_systemd = true endif endif endif -if get_option('default_bus') == 'dbus-broker' - launcher_args += '-DWANT_DBUS_BROKER' +if not get_option('use_systemd') + if needs_systemd + error('Systemd is required for dbus-broker, but use_systemd is set to false.') + endif + dbus_broker_arg = '' endif -if needs_systemd - systemd_dep = dependency('libsystemd') +if dbus_broker_arg != '' + if needs_systemd + systemd_dep = dependency('libsystemd') + else + systemd_dep = dependency('libsystemd', required: false) + if not systemd_dep.found() + dbus_broker_arg = '' + endif + endif else systemd_dep = dependency('', required: false) endif +if dbus_daemon_arg != '' + launcher_args += dbus_daemon_arg +endif +if dbus_broker_arg != '' + launcher_args += dbus_broker_arg +endif + +if get_option('default_bus') == 'dbus-broker' + launcher_args += '-DWANT_DBUS_BROKER' +endif + executable('at-spi-bus-launcher', 'at-spi-bus-launcher.c', include_directories: [ root_inc, include_directories('.') ], dependencies: [ gio_dep, systemd_dep, x11_deps ], diff --git a/meson_options.txt b/meson_options.txt index 548cdf7e..90c40df0 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -15,6 +15,10 @@ option('default_bus', type: 'combo', choices: ['dbus-daemon', 'dbus-broker'], value: 'dbus-daemon') +option('use_systemd', + description: 'Use systemd if available (needed for dbus-broker)', + type: 'boolean', + value: true) option('systemd_user_dir', description: 'Location of the systemd user services', type: 'string', |