From 10a706eb3e01f0b72b2f4594c9a577587302a02a Mon Sep 17 00:00:00 2001 From: Simon McVittie <smcv@collabora.com> Date: Thu, 24 Jun 2021 18:58:45 +0100 Subject: [PATCH] build: Generate code for a small subset of the systemd D-Bus API Taken from Flatpak 1.11.2. Signed-off-by: Simon McVittie <smcv@collabora.com> --- pressure-vessel/meson.build | 23 +++++++++++++++++++ pressure-vessel/org.freedesktop.systemd1.xml | 24 ++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 pressure-vessel/org.freedesktop.systemd1.xml diff --git a/pressure-vessel/meson.build b/pressure-vessel/meson.build index a2bf3f37b..552a35bbb 100644 --- a/pressure-vessel/meson.build +++ b/pressure-vessel/meson.build @@ -68,6 +68,13 @@ launcher1 = gnome.gdbus_codegen( namespace : 'Pv', ) +systemd_dbus = gnome.gdbus_codegen( + 'flatpak-systemd-dbus-generated', + sources : 'org.freedesktop.systemd1.xml', + interface_prefix : 'org.freedesktop.systemd1.', + namespace : 'Systemd', +) + enums = gnome.mkenums_simple( 'enumtypes', sources : headers, @@ -121,6 +128,21 @@ launcher_codegen_dep = declare_dependency( sources : launcher1[1], ) +systemd_codegen = static_library( + 'pressure-vessel-systemd-codegen', + sources : systemd_dbus, + dependencies : [ + gio_unix, + ], + c_args : silence_gdbus_codegen_warnings + pv_c_args, + include_directories : pv_include_dirs, + install: false, +) +systemd_codegen_dep = declare_dependency( + link_with : systemd_codegen, + sources : systemd_dbus[1], +) + executable( 'pressure-vessel-adverb', sources : [ @@ -217,6 +239,7 @@ executable( c_args : pv_c_args, dependencies : [ pressure_vessel_utils_dep, + systemd_codegen_dep, gio_unix, xau, libglnx_dep, diff --git a/pressure-vessel/org.freedesktop.systemd1.xml b/pressure-vessel/org.freedesktop.systemd1.xml new file mode 100644 index 000000000..eebb138a9 --- /dev/null +++ b/pressure-vessel/org.freedesktop.systemd1.xml @@ -0,0 +1,24 @@ +<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" +"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> +<!-- +Taken from Flatpak. +Copyright 2015 Red Hat, Inc. +SPDX-License-Identifier: LGPL-2.1-or-later +--> +<node> + <interface name="org.freedesktop.systemd1.Manager"> + <method name="StartTransientUnit"> + <arg type="s" direction="in" name="name"/> + <arg type="s" direction="in" name="mode"/> + <arg type="a(sv)" direction="in" name="properties"/> + <arg type="a(sa(sv))" direction="in" name="aux"/> + <arg type="o" direction="out" name="job"/> + </method> + <signal name="JobRemoved"> + <arg type="u" name="id"/> + <arg type="o" name="job"/> + <arg type="s" name="unit"/> + <arg type="s" name="result"/> + </signal> + </interface> +</node> -- GitLab