xref: /openbmc/qemu/scripts/qapi-gen.py (revision fb0bc835e56b894cbc7236294921e5393c786ad8)
1#!/usr/bin/env python
2# QAPI generator
3#
4# This work is licensed under the terms of the GNU GPL, version 2 or later.
5# See the COPYING file in the top-level directory.
6
7import sys
8from qapi.common import parse_command_line, QAPISchema
9from qapi.types import gen_types
10from qapi.visit import gen_visit
11from qapi.commands import gen_commands
12from qapi.events import gen_events
13from qapi.introspect import gen_introspect
14from qapi.doc import gen_doc
15
16
17def main(argv):
18    (input_file, output_dir, prefix, opts) = \
19        parse_command_line('bu', ['builtins', 'unmask-non-abi-names'])
20
21    opt_builtins = False
22    opt_unmask = False
23
24    for o, a in opts:
25        if o in ('-b', '--builtins'):
26            opt_builtins = True
27        if o in ('-u', '--unmask-non-abi-names'):
28            opt_unmask = True
29
30    schema = QAPISchema(input_file)
31
32    gen_types(schema, output_dir, prefix, opt_builtins)
33    gen_visit(schema, output_dir, prefix, opt_builtins)
34    gen_commands(schema, output_dir, prefix)
35    gen_events(schema, output_dir, prefix)
36    gen_introspect(schema, output_dir, prefix, opt_unmask)
37    gen_doc(schema, output_dir, prefix)
38
39
40if __name__ == '__main__':
41    main(sys.argv)
42