qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] meson: Fixes for dbus modules
@ 2023-12-15 11:21 Akihiko Odaki
  2023-12-15 11:21 ` [PATCH 1/4] Move dbus-display1 out of ui Akihiko Odaki
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Akihiko Odaki @ 2023-12-15 11:21 UTC (permalink / raw)
  To: Marc-André Lureau, Gerd Hoffmann, Paolo Bonzini,
	Daniel P. Berrangé, Thomas Huth, Philippe Mathieu-Daudé,
	Laurent Vivier
  Cc: qemu-devel, Akihiko Odaki

I found it was failing to build dbus modules when --enable-dbus so here
are fixes.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
Akihiko Odaki (4):
      Move dbus-display1 out of ui
      audio: Depend on dbus_display1_dep
      meson: Explicitly specify dbus-display1.h dependency
      tests/qtest: Depend on dbus_display1_dep

 meson.build                               | 21 +++++++++++++++++++++
 ui/dbus.h                                 |  2 +-
 audio/dbusaudio.c                         |  2 +-
 tests/qtest/dbus-display-test.c           |  2 +-
 audio/meson.build                         |  3 ++-
 ui/dbus-display1.xml => dbus-display1.xml |  0
 tests/qtest/meson.build                   |  2 +-
 ui/meson.build                            | 18 ------------------
 8 files changed, 27 insertions(+), 23 deletions(-)
---
base-commit: 4705fc0c8511d073bee4751c3c974aab2b10a970
change-id: 20231215-dbus-86876ecb7b09

Best regards,
-- 
Akihiko Odaki <akihiko.odaki@daynix.com>



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/4] Move dbus-display1 out of ui
  2023-12-15 11:21 [PATCH 0/4] meson: Fixes for dbus modules Akihiko Odaki
@ 2023-12-15 11:21 ` Akihiko Odaki
  2023-12-15 11:21 ` [PATCH 2/4] audio: Depend on dbus_display1_dep Akihiko Odaki
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Akihiko Odaki @ 2023-12-15 11:21 UTC (permalink / raw)
  To: Marc-André Lureau, Gerd Hoffmann, Paolo Bonzini,
	Daniel P. Berrangé, Thomas Huth, Philippe Mathieu-Daudé,
	Laurent Vivier
  Cc: qemu-devel, Akihiko Odaki

Despite its name, dbus-display1 does not only provide DBus interfaces
for the display but also for the audio.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
 meson.build                               | 21 +++++++++++++++++++++
 ui/dbus.h                                 |  2 +-
 audio/dbusaudio.c                         |  2 +-
 tests/qtest/dbus-display-test.c           |  2 +-
 ui/dbus-display1.xml => dbus-display1.xml |  0
 ui/meson.build                            | 18 ------------------
 6 files changed, 24 insertions(+), 21 deletions(-)

diff --git a/meson.build b/meson.build
index ec01f8b138aa..5e1b25a47184 100644
--- a/meson.build
+++ b/meson.build
@@ -2014,6 +2014,27 @@ dbus_display = get_option('dbus_display') \
            error_message: gdbus_codegen_error.format('-display dbus')) \
   .allowed()
 
+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@'])
+  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('.'))
+endif
+
 have_virtfs = get_option('virtfs') \
     .require(targetos == 'linux' or targetos == 'darwin',
              error_message: 'virtio-9p (virtfs) requires Linux or macOS') \
diff --git a/ui/dbus.h b/ui/dbus.h
index 1e8c24a48e32..ba9bab9f84d9 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 "dbus-display1.h"
 
 typedef struct DBusClipboardRequest {
     GDBusMethodInvocation *invocation;
diff --git a/audio/dbusaudio.c b/audio/dbusaudio.c
index 60fcf643ecf8..5222b3c68804 100644
--- a/audio/dbusaudio.c
+++ b/audio/dbusaudio.c
@@ -34,7 +34,7 @@
 #endif
 
 #include "ui/dbus.h"
-#include "ui/dbus-display1.h"
+#include "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..a15e9c377b08 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 "dbus-display1.h"
 
 static GDBusConnection*
 test_dbus_p2p_from_fd(int fd)
diff --git a/ui/dbus-display1.xml b/dbus-display1.xml
similarity index 100%
rename from ui/dbus-display1.xml
rename to dbus-display1.xml
diff --git a/ui/meson.build b/ui/meson.build
index 0ccb3387ee6a..bbb7c5242d55 100644
--- a/ui/meson.build
+++ b/ui/meson.build
@@ -75,24 +75,6 @@ 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],
               if_true: [files(
                 'dbus-chardev.c',

-- 
2.43.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/4] audio: Depend on dbus_display1_dep
  2023-12-15 11:21 [PATCH 0/4] meson: Fixes for dbus modules Akihiko Odaki
  2023-12-15 11:21 ` [PATCH 1/4] Move dbus-display1 out of ui Akihiko Odaki
@ 2023-12-15 11:21 ` Akihiko Odaki
  2023-12-15 11:21 ` [PATCH 3/4] meson: Explicitly specify dbus-display1.h dependency Akihiko Odaki
  2023-12-15 11:21 ` [PATCH 4/4] tests/qtest: Depend on dbus_display1_dep Akihiko Odaki
  3 siblings, 0 replies; 5+ messages in thread
From: Akihiko Odaki @ 2023-12-15 11:21 UTC (permalink / raw)
  To: Marc-André Lureau, Gerd Hoffmann, Paolo Bonzini,
	Daniel P. Berrangé, Thomas Huth, Philippe Mathieu-Daudé,
	Laurent Vivier
  Cc: qemu-devel, Akihiko Odaki

dbusaudio needs dbus_display1_dep.

Fixes: 739362d4205c ("audio: add "dbus" audio backend")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
 audio/meson.build | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/audio/meson.build b/audio/meson.build
index c8f658611f42..608f35e6af78 100644
--- a/audio/meson.build
+++ b/audio/meson.build
@@ -30,7 +30,8 @@ endforeach
 
 if dbus_display
     module_ss = ss.source_set()
-    module_ss.add(when: [gio, pixman], if_true: files('dbusaudio.c'))
+    module_ss.add(when: [gio, dbus_display1_dep, pixman],
+                  if_true: files('dbusaudio.c'))
     audio_modules += {'dbus': module_ss}
 endif
 

-- 
2.43.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/4] meson: Explicitly specify dbus-display1.h dependency
  2023-12-15 11:21 [PATCH 0/4] meson: Fixes for dbus modules Akihiko Odaki
  2023-12-15 11:21 ` [PATCH 1/4] Move dbus-display1 out of ui Akihiko Odaki
  2023-12-15 11:21 ` [PATCH 2/4] audio: Depend on dbus_display1_dep Akihiko Odaki
@ 2023-12-15 11:21 ` Akihiko Odaki
  2023-12-15 11:21 ` [PATCH 4/4] tests/qtest: Depend on dbus_display1_dep Akihiko Odaki
  3 siblings, 0 replies; 5+ messages in thread
From: Akihiko Odaki @ 2023-12-15 11:21 UTC (permalink / raw)
  To: Marc-André Lureau, Gerd Hoffmann, Paolo Bonzini,
	Daniel P. Berrangé, Thomas Huth, Philippe Mathieu-Daudé,
	Laurent Vivier
  Cc: qemu-devel, Akihiko Odaki

Explicitly specify dbus-display1.h as a dependency so that files
depending on it will not get compiled too early.

Fixes: 1222070e7728 ("meson: ensure dbus-display generated code is built before other units")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 5e1b25a47184..c31168e11cfb 100644
--- a/meson.build
+++ b/meson.build
@@ -2032,7 +2032,7 @@ if dbus_display
                                           '--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_display1_dep = declare_dependency(link_with: dbus_display1_lib, sources: dbus_display1[0])
 endif
 
 have_virtfs = get_option('virtfs') \

-- 
2.43.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 4/4] tests/qtest: Depend on dbus_display1_dep
  2023-12-15 11:21 [PATCH 0/4] meson: Fixes for dbus modules Akihiko Odaki
                   ` (2 preceding siblings ...)
  2023-12-15 11:21 ` [PATCH 3/4] meson: Explicitly specify dbus-display1.h dependency Akihiko Odaki
@ 2023-12-15 11:21 ` Akihiko Odaki
  3 siblings, 0 replies; 5+ messages in thread
From: Akihiko Odaki @ 2023-12-15 11:21 UTC (permalink / raw)
  To: Marc-André Lureau, Gerd Hoffmann, Paolo Bonzini,
	Daniel P. Berrangé, Thomas Huth, Philippe Mathieu-Daudé,
	Laurent Vivier
  Cc: qemu-devel, Akihiko Odaki

It ensures dbus-display1.c will not be recompiled.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
 tests/qtest/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
index 47dabf91d048..3a1a79d7c72e 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': [dbus_display1_dep, gio]}
 endif
 
 qtest_executables = {}

-- 
2.43.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-12-15 11:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-15 11:21 [PATCH 0/4] meson: Fixes for dbus modules Akihiko Odaki
2023-12-15 11:21 ` [PATCH 1/4] Move dbus-display1 out of ui Akihiko Odaki
2023-12-15 11:21 ` [PATCH 2/4] audio: Depend on dbus_display1_dep Akihiko Odaki
2023-12-15 11:21 ` [PATCH 3/4] meson: Explicitly specify dbus-display1.h dependency Akihiko Odaki
2023-12-15 11:21 ` [PATCH 4/4] tests/qtest: Depend on dbus_display1_dep Akihiko Odaki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).