summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gorse <mgorse@suse.com>2023-05-11 15:18:54 -0500
committerMike Gorse <mgorse@suse.com>2023-05-11 15:18:54 -0500
commitf72aa7bfe70c32cd98ebdea379586ae4441e1e4b (patch)
tree803aa2e2143922b39dea7a5207bb5df33b86ca38
parentd80c3b578ed595cb53b92f0c5fcb3d10c29c6dd5 (diff)
downloadat-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.build43
-rw-r--r--meson_options.txt4
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',