aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2018-02-11 10:35:40 +0100
committerEric Blake <eblake@redhat.com>2018-03-02 13:14:08 -0600
commitc263de3f419be945499ff7e6bd7512702f8bd522 (patch)
tree29e6fa4f4bec7b97c199616d34a1228de95514bc /scripts
parent0dd13589b0dc1d91bb1281a0d10ddaa71b8b5ccd (diff)
downloadqemu-c263de3f419be945499ff7e6bd7512702f8bd522.zip
qemu-c263de3f419be945499ff7e6bd7512702f8bd522.tar.gz
qemu-c263de3f419be945499ff7e6bd7512702f8bd522.tar.bz2
qapi: Streamline boilerplate comment generation
Every generator has separate boilerplate for .h and .c, and their differences are boring. All of them repeat the license note. Reduce the repetition as follows. Move common text like the license note to common open_output(), next to the existing common text there. For each generator, replace the two separate descriptions by a single one. While there, emit an "automatically generated" note into generated documentation, too. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20180211093607.27351-3-armbru@redhat.com> Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/qapi-commands.py26
-rw-r--r--scripts/qapi-event.py26
-rw-r--r--scripts/qapi-introspect.py21
-rw-r--r--scripts/qapi-types.py26
-rw-r--r--scripts/qapi-visit.py26
-rw-r--r--scripts/qapi.py31
-rwxr-xr-xscripts/qapi2texi.py3
7 files changed, 34 insertions, 125 deletions
diff --git a/scripts/qapi-commands.py b/scripts/qapi-commands.py
index f89d748..8e8da7c 100644
--- a/scripts/qapi-commands.py
+++ b/scripts/qapi-commands.py
@@ -255,38 +255,18 @@ class QAPISchemaGenCommandVisitor(QAPISchemaVisitor):
(input_file, output_dir, do_c, do_h, prefix, opts) = parse_command_line()
-c_comment = '''
-/*
- * schema-defined QMP->QAPI command dispatch
+blurb = '''
+ * Schema-defined QAPI/QMP commands
*
* Copyright IBM, Corp. 2011
*
* Authors:
* Anthony Liguori <aliguori@us.ibm.com>
- *
- * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
- * See the COPYING.LIB file in the top-level directory.
- *
- */
-'''
-h_comment = '''
-/*
- * schema-defined QAPI function prototypes
- *
- * Copyright IBM, Corp. 2011
- *
- * Authors:
- * Anthony Liguori <aliguori@us.ibm.com>
- *
- * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
- * See the COPYING.LIB file in the top-level directory.
- *
- */
'''
(fdef, fdecl) = open_output(output_dir, do_c, do_h, prefix,
'qmp-marshal.c', 'qmp-commands.h',
- c_comment, h_comment)
+ blurb)
fdef.write(mcgen('''
diff --git a/scripts/qapi-event.py b/scripts/qapi-event.py
index c710968..2b7d720 100644
--- a/scripts/qapi-event.py
+++ b/scripts/qapi-event.py
@@ -171,38 +171,18 @@ class QAPISchemaGenEventVisitor(QAPISchemaVisitor):
(input_file, output_dir, do_c, do_h, prefix, dummy) = parse_command_line()
-c_comment = '''
-/*
- * schema-defined QAPI event functions
+blurb = '''
+ * Schema-defined QAPI/QMP events
*
* Copyright (c) 2014 Wenchao Xia
*
* Authors:
* Wenchao Xia <wenchaoqemu@gmail.com>
- *
- * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
- * See the COPYING.LIB file in the top-level directory.
- *
- */
-'''
-h_comment = '''
-/*
- * schema-defined QAPI event functions
- *
- * Copyright (c) 2014 Wenchao Xia
- *
- * Authors:
- * Wenchao Xia <wenchaoqemu@gmail.com>
- *
- * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
- * See the COPYING.LIB file in the top-level directory.
- *
- */
'''
(fdef, fdecl) = open_output(output_dir, do_c, do_h, prefix,
'qapi-event.c', 'qapi-event.h',
- c_comment, h_comment)
+ blurb)
fdef.write(mcgen('''
#include "qemu/osdep.h"
diff --git a/scripts/qapi-introspect.py b/scripts/qapi-introspect.py
index 032bcea..83da2bd 100644
--- a/scripts/qapi-introspect.py
+++ b/scripts/qapi-introspect.py
@@ -176,32 +176,15 @@ for o, a in opts:
if o in ('-u', '--unmask-non-abi-names'):
opt_unmask = True
-c_comment = '''
-/*
+blurb = '''
* QAPI/QMP schema introspection
*
* Copyright (C) 2015 Red Hat, Inc.
- *
- * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
- * See the COPYING.LIB file in the top-level directory.
- *
- */
-'''
-h_comment = '''
-/*
- * QAPI/QMP schema introspection
- *
- * Copyright (C) 2015 Red Hat, Inc.
- *
- * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
- * See the COPYING.LIB file in the top-level directory.
- *
- */
'''
(fdef, fdecl) = open_output(output_dir, do_c, do_h, prefix,
'qmp-introspect.c', 'qmp-introspect.h',
- c_comment, h_comment)
+ blurb)
fdef.write(mcgen('''
#include "qemu/osdep.h"
diff --git a/scripts/qapi-types.py b/scripts/qapi-types.py
index 7e3051d..86afc57 100644
--- a/scripts/qapi-types.py
+++ b/scripts/qapi-types.py
@@ -250,39 +250,19 @@ for o, a in opts:
if o in ('-b', '--builtins'):
do_builtins = True
-c_comment = '''
-/*
- * deallocation functions for schema-defined QAPI types
+blurb = '''
+ * Schema-defined QAPI types
*
* Copyright IBM, Corp. 2011
*
* Authors:
* Anthony Liguori <aliguori@us.ibm.com>
* Michael Roth <mdroth@linux.vnet.ibm.com>
- *
- * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
- * See the COPYING.LIB file in the top-level directory.
- *
- */
-'''
-h_comment = '''
-/*
- * schema-defined QAPI types
- *
- * Copyright IBM, Corp. 2011
- *
- * Authors:
- * Anthony Liguori <aliguori@us.ibm.com>
- *
- * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
- * See the COPYING.LIB file in the top-level directory.
- *
- */
'''
(fdef, fdecl) = open_output(output_dir, do_c, do_h, prefix,
'qapi-types.c', 'qapi-types.h',
- c_comment, h_comment)
+ blurb)
fdef.write(mcgen('''
#include "qemu/osdep.h"
diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
index bc2b8b5..0a36707 100644
--- a/scripts/qapi-visit.py
+++ b/scripts/qapi-visit.py
@@ -334,38 +334,18 @@ for o, a in opts:
if o in ('-b', '--builtins'):
do_builtins = True
-c_comment = '''
-/*
- * schema-defined QAPI visitor functions
+blurb = '''
+ * Schema-defined QAPI visitors
*
* Copyright IBM, Corp. 2011
*
* Authors:
* Anthony Liguori <aliguori@us.ibm.com>
- *
- * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
- * See the COPYING.LIB file in the top-level directory.
- *
- */
-'''
-h_comment = '''
-/*
- * schema-defined QAPI visitor functions
- *
- * Copyright IBM, Corp. 2011
- *
- * Authors:
- * Anthony Liguori <aliguori@us.ibm.com>
- *
- * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
- * See the COPYING.LIB file in the top-level directory.
- *
- */
'''
(fdef, fdecl) = open_output(output_dir, do_c, do_h, prefix,
'qapi-visit.c', 'qapi-visit.h',
- c_comment, h_comment)
+ blurb)
fdef.write(mcgen('''
#include "qemu/osdep.h"
diff --git a/scripts/qapi.py b/scripts/qapi.py
index 58f995b..2e5a1ce 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -1985,11 +1985,21 @@ def parse_command_line(extra_options='', extra_long_options=[]):
#
-def open_output(output_dir, do_c, do_h, prefix, c_file, h_file,
- c_comment, h_comment):
+def open_output(output_dir, do_c, do_h, prefix, c_file, h_file, blurb):
guard = guardname(prefix + h_file)
c_file = output_dir + prefix + c_file
h_file = output_dir + prefix + h_file
+ comment = mcgen('''/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
+
+/*
+%(blurb)s
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ */
+
+''',
+ blurb=blurb.strip('\n'))
if output_dir:
try:
@@ -2007,27 +2017,22 @@ def open_output(output_dir, do_c, do_h, prefix, c_file, h_file,
fdef = maybe_open(do_c, c_file, 'w')
fdecl = maybe_open(do_h, h_file, 'w')
- fdef.write(mcgen('''
-/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
-%(comment)s
-''',
- comment=c_comment))
-
+ fdef.write(comment)
+ fdecl.write(comment)
fdecl.write(mcgen('''
-/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
-%(comment)s
#ifndef %(guard)s
#define %(guard)s
''',
- comment=h_comment, guard=guard))
+ guard=guard))
return (fdef, fdecl)
def close_output(fdef, fdecl):
- fdecl.write('''
+ fdecl.write(mcgen('''
+
#endif
-''')
+'''))
fdecl.close()
fdef.close()
diff --git a/scripts/qapi2texi.py b/scripts/qapi2texi.py
index bf1c57b..8a604d8 100755
--- a/scripts/qapi2texi.py
+++ b/scripts/qapi2texi.py
@@ -283,7 +283,8 @@ def main(argv):
print("%s: need pragma 'doc-required' "
"to generate documentation" % argv[0], file=sys.stderr)
sys.exit(1)
- print(texi_schema(schema))
+ print('@c AUTOMATICALLY GENERATED, DO NOT MODIFY\n')
+ print(texi_schema(schema), end='')
if __name__ == '__main__':