Markus Armbruster | fb0bc83 | 2018-02-26 13:48:58 -0600 | [diff] [blame^] | 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) |