2
0

qapi-gen.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. import sys
  7. from qapi.common import parse_command_line, QAPISchema
  8. from qapi.types import gen_types
  9. from qapi.visit import gen_visit
  10. from qapi.commands import gen_commands
  11. from qapi.events import gen_events
  12. from qapi.introspect import gen_introspect
  13. from qapi.doc import gen_doc
  14. def main(argv):
  15. (input_file, output_dir, prefix, opts) = \
  16. parse_command_line('bu', ['builtins', 'unmask-non-abi-names'])
  17. opt_builtins = False
  18. opt_unmask = False
  19. for o, a in opts:
  20. if o in ('-b', '--builtins'):
  21. opt_builtins = True
  22. if o in ('-u', '--unmask-non-abi-names'):
  23. opt_unmask = True
  24. schema = QAPISchema(input_file)
  25. gen_types(schema, output_dir, prefix, opt_builtins)
  26. gen_visit(schema, output_dir, prefix, opt_builtins)
  27. gen_commands(schema, output_dir, prefix)
  28. gen_events(schema, output_dir, prefix)
  29. gen_introspect(schema, output_dir, prefix, opt_unmask)
  30. gen_doc(schema, output_dir, prefix)
  31. if __name__ == '__main__':
  32. main(sys.argv)