mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice-common
synced 2026-08-07 01:52:07 +00:00
codegen: Generate headers while generating code
Python script generates code and header together however allowed to save only one of them. Allows to save both of them together to reduce number of time we call Python script. Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Christophe Fergeau <cfergeau@redhat.com>
This commit is contained in:
parent
af66a4ccad
commit
dac34baaab
@ -112,21 +112,17 @@ MARSHALLERS_DEPS = \
|
||||
generated_client_demarshallers.c: $(top_srcdir)/spice.proto $(MARSHALLERS_DEPS)
|
||||
$(AM_V_GEN)$(PYTHON) $(top_srcdir)/spice_codegen.py --generate-demarshallers --client --include common/messages.h $< $@ >/dev/null
|
||||
|
||||
generated_client_marshallers.h: $(top_srcdir)/spice.proto $(MARSHALLERS_DEPS)
|
||||
$(AM_V_GEN)$(PYTHON) $(top_srcdir)/spice_codegen.py --generate-marshallers -P --client --include common/messages.h -H $< $@ >/dev/null
|
||||
|
||||
generated_client_marshallers.c: $(top_srcdir)/spice.proto $(MARSHALLERS_DEPS)
|
||||
$(AM_V_GEN)$(PYTHON) $(top_srcdir)/spice_codegen.py --generate-marshallers -P --include client_marshallers.h --client $< $@ >/dev/null
|
||||
generated_client_marshallers.c generated_client_marshallers.h: $(top_srcdir)/spice.proto $(MARSHALLERS_DEPS)
|
||||
$(AM_V_GEN)$(PYTHON) $(top_srcdir)/spice_codegen.py --generate-marshallers -P --include client_marshallers.h --client \
|
||||
--generate-header $< $@ >/dev/null
|
||||
|
||||
generated_server_demarshallers.c: $(top_srcdir)/spice.proto $(MARSHALLERS_DEPS)
|
||||
$(AM_V_GEN)$(PYTHON) $(top_srcdir)/spice_codegen.py --generate-demarshallers --server --include common/messages.h $< $@ >/dev/null
|
||||
|
||||
STRUCTS = -M String -M Rect -M Point -M DisplayBase -M Fill -M Opaque -M Copy -M Blend -M Blackness -M Whiteness -M Invers -M Rop3 -M Stroke -M Text -M Transparent -M AlphaBlend -M Composite
|
||||
generated_server_marshallers.c: $(top_srcdir)/spice.proto $(MARSHALLERS_DEPS)
|
||||
$(AM_V_GEN)$(PYTHON) $(top_srcdir)/spice_codegen.py --generate-marshallers $(STRUCTS) --server --include common/messages.h $< $@ >/dev/null
|
||||
|
||||
generated_server_marshallers.h: $(top_srcdir)/spice.proto $(MARSHALLERS_DEPS)
|
||||
$(AM_V_GEN)$(PYTHON) $(top_srcdir)/spice_codegen.py --generate-marshallers $(STRUCTS) --server --include common/messages.h -H $< $@ >/dev/null
|
||||
generated_server_marshallers.c generated_server_marshallers.h: $(top_srcdir)/spice.proto $(MARSHALLERS_DEPS)
|
||||
$(AM_V_GEN)$(PYTHON) $(top_srcdir)/spice_codegen.py --generate-marshallers $(STRUCTS) --server --include common/messages.h \
|
||||
--generate-header $< $@ >/dev/null
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(CLIENT_MARSHALLERS) \
|
||||
|
||||
@ -21,9 +21,9 @@
|
||||
|
||||
#include <spice/protocol.h>
|
||||
|
||||
#include "messages.h"
|
||||
#include "common/generated_client_marshallers.h"
|
||||
#include "marshaller.h"
|
||||
#include "messages.h"
|
||||
|
||||
SPICE_BEGIN_DECLS
|
||||
|
||||
|
||||
@ -65,8 +65,13 @@ spice_common_dep = declare_dependency(link_with : spice_common_lib,
|
||||
if spice_common_generate_client_code
|
||||
targets = [
|
||||
['client_demarshallers', spice_proto, 'generated_client_demarshallers.c', ['--generate-demarshallers', '--client', '--include', 'common/messages.h', '@INPUT@', '@OUTPUT@']],
|
||||
['client_marshalers', spice_proto, 'generated_client_marshallers.c', ['--generate-marshallers', '-P', '--client', '--include', 'client_marshallers.h', '@INPUT@', '@OUTPUT@']],
|
||||
['client_marshallers_h', spice_proto, 'generated_client_marshallers.h', ['--generate-marshallers', '-P', '--client', '--include', 'common/messages.h', '-H', '@INPUT@', '@OUTPUT@']],
|
||||
['client_marshallers', spice_proto,
|
||||
['generated_client_marshallers.c', 'generated_client_marshallers.h'],
|
||||
['--generate-marshallers', '--generate-header',
|
||||
'-P', '--client', '--include', 'client_marshallers.h',
|
||||
'@INPUT@', '@OUTPUT0@'
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
spice_common_client_sources = [
|
||||
@ -116,8 +121,12 @@ 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, 'generated_server_marshallers.c', ['--generate-marshallers', '--server'] + structs_args + ['--include', 'common/messages.h', '@INPUT@', '@OUTPUT@']],
|
||||
['server_marshallers_h', spice_proto, 'generated_server_marshallers.h', ['--generate-marshallers', '--server'] + structs_args + ['--include', 'common/messages.h', '-H', '@INPUT@', '@OUTPUT@']],
|
||||
['server_marshallers', spice_proto,
|
||||
['generated_server_marshallers.c', 'generated_server_marshallers.h'],
|
||||
['--generate-marshallers', '--generate-header',
|
||||
'--server'] + structs_args + ['--include', 'common/messages.h', '@INPUT@', '@OUTPUT0@'
|
||||
]
|
||||
],
|
||||
]
|
||||
|
||||
spice_common_server_sources = []
|
||||
|
||||
@ -173,6 +173,9 @@ parser.add_option("--suffix", dest="suffix",
|
||||
help="set public symbol suffix", default="")
|
||||
parser.add_option("--license", dest="license",
|
||||
help="license to use for generated file(s) (LGPL/BSD)", default="LGPL")
|
||||
parser.add_option("--generate-header",
|
||||
action="store_true", dest="generate_header", default=False,
|
||||
help="Generate also the header")
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
@ -192,7 +195,11 @@ if proto == None:
|
||||
codegen.set_prefix(proto.name)
|
||||
writer = codegen.CodeWriter()
|
||||
writer.header = codegen.CodeWriter()
|
||||
writer.header.set_option("dest_file", dest_file)
|
||||
if options.generate_header:
|
||||
filename = os.path.splitext(dest_file)[0] + '.h'
|
||||
writer.header.set_option("dest_file", filename)
|
||||
else:
|
||||
writer.header.set_option("dest_file", dest_file)
|
||||
writer.set_option("source", os.path.basename(proto_file))
|
||||
|
||||
if options.license == "LGPL":
|
||||
@ -256,7 +263,7 @@ writer.writeln("/* this is a file autogenerated by spice_codegen.py */")
|
||||
writer.write(license)
|
||||
writer.header.writeln("/* this is a file autogenerated by spice_codegen.py */")
|
||||
writer.header.write(license)
|
||||
if not options.header and not options.generate_enums:
|
||||
if not options.generate_enums:
|
||||
writer.writeln("#ifdef HAVE_CONFIG_H")
|
||||
writer.writeln("#include <config.h>")
|
||||
writer.writeln("#endif")
|
||||
@ -311,4 +318,8 @@ if options.header:
|
||||
else:
|
||||
content = writer.getvalue()
|
||||
write_content(dest_file, content, options.keep_identical_file)
|
||||
if options.generate_header:
|
||||
content = writer.header.getvalue()
|
||||
filename = writer.header.options["dest_file"]
|
||||
write_content(filename, content, options.keep_identical_file)
|
||||
sys.exit(0)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user