diff options
| author | Markus Armbruster <armbru@redhat.com> | 2018-02-26 13:48:58 -0600 |
|---|---|---|
| committer | Eric Blake <eblake@redhat.com> | 2018-03-02 13:14:09 -0600 |
| commit | fb0bc835e56b894cbc7236294921e5393c786ad8 (patch) | |
| tree | c96c6626054c20084fc9fe268fab187c0bed20bf /scripts/qapi/commands.py | |
| parent | 26df4e7fab06422b21e11d039c64243ca4003147 (diff) | |
| download | focaccia-qemu-fb0bc835e56b894cbc7236294921e5393c786ad8.tar.gz focaccia-qemu-fb0bc835e56b894cbc7236294921e5393c786ad8.zip | |
qapi-gen: New common driver for code and doc generators
Whenever qapi-schema.json changes, we run six programs eleven times to update eleven files. Similar for qga/qapi-schema.json. This is silly. Replace the six programs by a single program that spits out all eleven files. The programs become modules in new Python package qapi, along with the helper library. This requires moving them to scripts/qapi/. While moving them, consistently drop executable mode bits. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20180211093607.27351-9-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com> [eblake: move change to one-line 'blurb' earlier in series, mention mode bit change as intentional, update qapi-code-gen.txt to match actual generated events.c file] Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to '')
| -rw-r--r-- | scripts/qapi/commands.py (renamed from scripts/qapi-commands.py) | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/scripts/qapi-commands.py b/scripts/qapi/commands.py index c20b22020e..a744611d58 100644 --- a/scripts/qapi-commands.py +++ b/scripts/qapi/commands.py @@ -13,7 +13,7 @@ This work is licensed under the terms of the GNU GPL, version 2. See the COPYING file in the top-level directory. """ -from qapi import * +from qapi.common import * def gen_command_decl(name, arg_type, boxed, ret_type): @@ -255,11 +255,8 @@ class QAPISchemaGenCommandVisitor(QAPISchemaVisitor): self._regy += gen_register_command(name, success_response) -def main(argv): - (input_file, output_dir, do_c, do_h, prefix, opts) = parse_command_line() - +def gen_commands(schema, output_dir, prefix): blurb = ' * Schema-defined QAPI/QMP commands' - genc = QAPIGenC(blurb, __doc__) genh = QAPIGenH(blurb, __doc__) @@ -288,17 +285,9 @@ void %(c_prefix)sqmp_init_marshal(QmpCommandList *cmds); ''', prefix=prefix, c_prefix=c_name(prefix, protect=False))) - schema = QAPISchema(input_file) vis = QAPISchemaGenCommandVisitor(prefix) schema.visit(vis) genc.add(vis.defn) genh.add(vis.decl) - - if do_c: - genc.write(output_dir, prefix + 'qmp-marshal.c') - if do_h: - genh.write(output_dir, prefix + 'qmp-commands.h') - - -if __name__ == '__main__': - main(sys.argv) + genc.write(output_dir, prefix + 'qmp-marshal.c') + genh.write(output_dir, prefix + 'qmp-commands.h') |