[Spice-devel] [PATCH spice-common v2 1/2] meson: Fix dependency of generated files

Frediano Ziglio fziglio at redhat.com
Wed Apr 3 16:20:35 UTC 2019


All generated file depends on generated_messages.h which is
generated too.
So add an explicit dependency from all generated file
(except generated_messages.h generator) to generated_messages.h
generator.
This fixes compiling SPICE server where generated_messages.h
was not generated at all.
Add dependency to the include header to make Meson generate the
proper include flag.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 common/meson.build | 49 ++++++++++++++++++++++++++++++----------------
 1 file changed, 32 insertions(+), 17 deletions(-)

diff --git a/common/meson.build b/common/meson.build
index 2d76d2b..2b7bef0 100644
--- a/common/meson.build
+++ b/common/meson.build
@@ -59,25 +59,34 @@ spice_common_dep = declare_dependency(link_with : spice_common_lib,
                                       include_directories : spice_common_include,
                                       dependencies : spice_common_deps)
 
+targets = [
+  ['client_demarshallers', spice_proto,
+    ['generated_client_demarshallers.c', 'generated_messages.h'],
+    ['--generate-demarshallers',
+      '--client',
+      '--include', 'common/messages.h',
+      '--generated-declaration-file', '@OUTPUT1@',
+      '@INPUT@', '@OUTPUT0@'
+    ]
+  ]
+]
+
+foreach t : targets
+  cmd = [python, spice_codegen] + t[3]
+  common_generated = custom_target(t[0], input : t[1], output : t[2], install : false, command : cmd,
+                                   depend_files : spice_codegen_files + ['messages.h'])
+endforeach
+
 #
 # libspice-common-client
 #
 if spice_common_generate_client_code
   targets = [
-    ['client_demarshallers', spice_proto,
-      ['generated_client_demarshallers.c', 'generated_messages.h'],
-      ['--generate-demarshallers',
-        '--client',
-        '--include', 'common/messages.h',
-        '--generated-declaration-file', '@OUTPUT1@',
-        '@INPUT@', '@OUTPUT0@'
-      ]
-    ],
-    ['client_marshallers', spice_proto,
+    ['client_marshallers', [ spice_proto, common_generated ],
       ['generated_client_marshallers.c', 'generated_client_marshallers.h'],
       ['--generate-marshallers', '--generate-header',
-        '-P', '--client', '--include', 'client_marshallers.h',
-        '@INPUT@', '@OUTPUT0@'
+        '-P', '--client', '--include', 'common/client_marshallers.h',
+        '@INPUT0@', '@OUTPUT0@'
       ]
     ]
   ]
@@ -88,9 +97,11 @@ if spice_common_generate_client_code
     'ssl_verify.h',
   ]
 
+  spice_common_client_sources += common_generated
   foreach t : targets
     cmd = [python, spice_codegen] + t[3]
-    target = custom_target(t[0], input : t[1], output : t[2], install : false, command : cmd, depend_files : spice_codegen_files)
+    target = custom_target(t[0], input : t[1], output : t[2], install : false, command : cmd,
+                           depend_files : spice_codegen_files + ['client_marshallers.h'])
     spice_common_client_sources += target
   endforeach
 
@@ -128,11 +139,14 @@ if spice_common_generate_server_code
   ]
 
   targets = [
-    ['server_demarshallers', spice_proto, 'generated_server_demarshallers.c', ['--generate-demarshallers', '--server', '--include', 'common/messages.h', '@INPUT@', '@OUTPUT@']],
-    ['server_marshallers', spice_proto,
+    ['server_demarshallers', [ spice_proto, common_generated ],
+      ['generated_server_demarshallers.c'],
+      ['--generate-demarshallers', '--server', '--include', 'common/messages.h', '@INPUT0@', '@OUTPUT0@']
+    ],
+    ['server_marshallers', [ spice_proto, common_generated ],
       ['generated_server_marshallers.c', 'generated_server_marshallers.h'],
       ['--generate-marshallers', '--generate-header',
-        '--server'] + structs_args + ['--include', 'common/messages.h', '@INPUT@', '@OUTPUT0@'
+        '--server'] + structs_args + ['--include', 'common/messages.h', '@INPUT0@', '@OUTPUT0@'
       ]
     ],
   ]
@@ -141,7 +155,8 @@ if spice_common_generate_server_code
 
   foreach t : targets
     cmd = [python, spice_codegen] + t[3]
-    target = custom_target(t[0], input : t[1], output : t[2], install : false, command : cmd, depend_files : spice_codegen_files)
+    target = custom_target(t[0], input : t[1], output : t[2], install : false, command : cmd,
+                           depend_files : spice_codegen_files + ['messages.h'])
     spice_common_server_sources += target
   endforeach
 
-- 
2.20.1



More information about the Spice-devel mailing list