Generated code assumes the required types header was generated using the same prefix.
Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com> --- scripts/qapi-visit.py | 41 ++++++++++++++++++++++++++++++++--------- 1 files changed, 32 insertions(+), 9 deletions(-) diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py index bf005c6..ee6b031 100644 --- a/scripts/qapi-visit.py +++ b/scripts/qapi-visit.py @@ -1,6 +1,7 @@ from ordereddict import OrderedDict from qapi import * import sys +import getopt def generate_visit_struct_body(field_prefix, members): ret = "" @@ -135,21 +136,43 @@ void visit_type_%(name)s(Visiter *m, %(name)s * obj, const char *name, Error **e ''', name=name) -fdef = open('qapi-visit.c', 'w') -fdecl = open('qapi-visit.h', 'w') +try: + opts, args = getopt.gnu_getopt(sys.argv[1:], "p:", ["prefix="]) +except getopt.GetoptError, err: + print str(err) + sys.exit(1) -fdef.write('''/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT MODIFY */ +prefix = "" +c_file = 'qapi-visit.c' +h_file = 'qapi-visit.h' -#include "qapi-visit.h" -''') +for o, a in opts: + if o in ("-p", "--prefix"): + prefix = a + +c_file = prefix + c_file +h_file = prefix + h_file + +fdef = open(c_file, 'w') +fdecl = open(h_file, 'w') + +fdef.write(mcgen(''' +/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT MODIFY */ -fdecl.write('''/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT MODIFY */ +#include "%(header)s" +''', + header=basename(h_file))) + +fdecl.write(mcgen(''' +/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT MODIFY */ -#ifndef QAPI_VISIT_H -#define QAPI_VISIT_H +#ifndef %(guard)s +#define %(guard)s #include "qapi-visit-core.h" -''') +#include "%(prefix)sqapi-types.h" +''', + prefix=prefix, guard=guardname(h_file))) exprs = parse_schema(sys.stdin) -- 1.7.0.4