OSDN Git Service

qapi-gen: New common driver for code and doc generators
[qmiga/qemu.git] / scripts / qapi-gen.py
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
7 import sys
8 from qapi.common import parse_command_line, QAPISchema
9 from qapi.types import gen_types
10 from qapi.visit import gen_visit
11 from qapi.commands import gen_commands
12 from qapi.events import gen_events
13 from qapi.introspect import gen_introspect
14 from qapi.doc import gen_doc
15
16
17 def 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
40 if __name__ == '__main__':
41     main(sys.argv)