Move dbus_display1 from ui to util as it's used not only by ui/dbus but also dbus-display-test.
dbus_display1 is now added to util_ss accordingly. It ensures that the source will be linked with audio/dbus, and also avoids recompilation when linking with dbus-display-test. dbus-display.h is also added to genh to ensure it is generated before compiling ui/dbus, audio/dbus, and dbus-display-test. Both changes combined, it is no longer necessary for ui/dbus, audio/dbus, and dbus-display-test to explicitly state the dependency on dbus_display1. Signed-off-by: Akihiko Odaki <akihiko.od...@daynix.com> --- MAINTAINERS | 2 +- ui/dbus.h | 2 +- audio/dbusaudio.c | 2 +- tests/qtest/dbus-display-test.c | 2 +- tests/qtest/meson.build | 2 +- ui/meson.build | 20 +------------------- {ui => util}/dbus-display1.xml | 0 util/meson.build | 21 +++++++++++++++++++++ 8 files changed, 27 insertions(+), 24 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 695e0bd34fbb..aefc2b62d9f5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3381,7 +3381,7 @@ S: Maintained F: backends/dbus-vmstate.c F: ui/dbus* F: audio/dbus* -F: util/dbus.c +F: util/dbus* F: include/ui/dbus* F: include/qemu/dbus.h F: docs/interop/dbus* diff --git a/ui/dbus.h b/ui/dbus.h index 1e8c24a48e32..a847bee98876 100644 --- a/ui/dbus.h +++ b/ui/dbus.h @@ -31,7 +31,7 @@ #include "ui/console.h" #include "ui/clipboard.h" -#include "ui/dbus-display1.h" +#include "util/dbus-display1.h" typedef struct DBusClipboardRequest { GDBusMethodInvocation *invocation; diff --git a/audio/dbusaudio.c b/audio/dbusaudio.c index 60fcf643ecf8..2aacdac6715b 100644 --- a/audio/dbusaudio.c +++ b/audio/dbusaudio.c @@ -34,7 +34,7 @@ #endif #include "ui/dbus.h" -#include "ui/dbus-display1.h" +#include "util/dbus-display1.h" #define AUDIO_CAP "dbus" #include "audio.h" diff --git a/tests/qtest/dbus-display-test.c b/tests/qtest/dbus-display-test.c index 21edaa1e321f..d4871e2fd80f 100644 --- a/tests/qtest/dbus-display-test.c +++ b/tests/qtest/dbus-display-test.c @@ -5,7 +5,7 @@ #include <gio/gio.h> #include <gio/gunixfdlist.h> #include "libqtest.h" -#include "ui/dbus-display1.h" +#include "util/dbus-display1.h" static GDBusConnection* test_dbus_p2p_from_fd(int fd) diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index 47dabf91d048..225cd35e4664 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -332,7 +332,7 @@ if vnc.found() endif if dbus_display - qtests += {'dbus-display-test': [dbus_display1, gio]} + qtests += {'dbus-display-test': [gio]} endif qtest_executables = {} diff --git a/ui/meson.build b/ui/meson.build index 0ccb3387ee6a..21d1d3b27f29 100644 --- a/ui/meson.build +++ b/ui/meson.build @@ -75,25 +75,7 @@ endif if dbus_display dbus_ss = ss.source_set() - env = environment() - env.set('TARGETOS', targetos) - xml = custom_target('dbus-display preprocess', - input: 'dbus-display1.xml', - output: 'dbus-display1.xml', - env: env, - command: [xml_pp, '@INPUT@', '@OUTPUT@']) - dbus_display1 = custom_target('dbus-display gdbus-codegen', - output: ['dbus-display1.h', 'dbus-display1.c'], - input: xml, - command: [gdbus_codegen, '@INPUT@', - '--glib-min-required', '2.64', - '--output-directory', meson.current_build_dir(), - '--interface-prefix', 'org.qemu.', - '--c-namespace', 'QemuDBus', - '--generate-c-code', '@BASENAME@']) - dbus_display1_lib = static_library('dbus-display1', dbus_display1, dependencies: gio) - dbus_display1_dep = declare_dependency(link_with: dbus_display1_lib, include_directories: include_directories('.')) - dbus_ss.add(when: [gio, dbus_display1_dep], + dbus_ss.add(when: [gio], if_true: [files( 'dbus-chardev.c', 'dbus-clipboard.c', diff --git a/ui/dbus-display1.xml b/util/dbus-display1.xml similarity index 100% rename from ui/dbus-display1.xml rename to util/dbus-display1.xml diff --git a/util/meson.build b/util/meson.build index c2322ef6e71a..268a8ab03671 100644 --- a/util/meson.build +++ b/util/meson.build @@ -119,3 +119,24 @@ elif cpu == 'loongarch64' elif cpu in ['ppc', 'ppc64'] util_ss.add(files('cpuinfo-ppc.c')) endif + +if dbus_display + env = environment() + env.set('TARGETOS', targetos) + xml = custom_target('dbus-display preprocess', + input: 'dbus-display1.xml', + output: 'dbus-display1.xml', + env: env, + command: [xml_pp, '@INPUT@', '@OUTPUT@']) + dbus_display1 = custom_target('dbus-display gdbus-codegen', + output: ['dbus-display1.h', 'dbus-display1.c'], + input: xml, + command: [gdbus_codegen, '@INPUT@', + '--glib-min-required', '2.64', + '--output-directory', meson.current_build_dir(), + '--interface-prefix', 'org.qemu.', + '--c-namespace', 'QemuDBus', + '--generate-c-code', '@BASENAME@']) + util_ss.add(dbus_display1) + genh += dbus_display1[0] +endif -- 2.43.0