generate_qmk.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. """This script generates the XAP protocol generated sources to be compiled into QMK firmware.
  2. """
  3. from milc import cli
  4. from qmk.path import normpath
  5. from qmk.keyboard import keyboard_completer, keyboard_folder
  6. from qmk.xap.gen_firmware.info_generator import generate_info
  7. from qmk.xap.gen_firmware.inline_generator import generate_inline
  8. from qmk.xap.gen_firmware.header_generator import generate_header
  9. @cli.argument('-o', '--output', type=normpath, help='File to write to')
  10. @cli.subcommand('Generates the XAP protocol include.', hidden=False if cli.config.user.developer else True)
  11. def xap_generate_qmk_inc(cli):
  12. """Generates the XAP protocol inline codegen file, generated during normal build.
  13. """
  14. generate_inline(cli.args.output)
  15. @cli.argument('-o', '--output', type=normpath, help='File to write to')
  16. @cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='Name of the keyboard')
  17. @cli.subcommand('Generates the XAP protocol include.', hidden=False if cli.config.user.developer else True)
  18. def xap_generate_qmk_h(cli):
  19. """Generates the XAP protocol header file, generated during normal build.
  20. """
  21. # Determine our keyboard
  22. if not cli.args.keyboard:
  23. cli.log.error('Missing parameter: --keyboard')
  24. cli.subcommands['xap-generate-qmk-h'].print_help()
  25. return False
  26. generate_header(cli.args.output, cli.args.keyboard)
  27. @cli.argument('-o', '--output', type=normpath, help='File to write to')
  28. @cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='Name of the keyboard')
  29. @cli.argument('-km', '--keymap', help='The keymap\'s name')
  30. @cli.subcommand('Generates the XAP info.json payload include.', hidden=False if cli.config.user.developer else True)
  31. def xap_generate_info_h(cli):
  32. """Generates the XAP info.json payload header file, generated during normal build.
  33. """
  34. # Determine our keyboard/keymap
  35. if not cli.args.keyboard:
  36. cli.log.error('Missing parameter: --keyboard')
  37. cli.subcommands['xap-generate-info-h'].print_help()
  38. return False
  39. if not cli.args.keymap:
  40. cli.log.error('Missing parameter: --keymap')
  41. cli.subcommands['xap-generate-info-h'].print_help()
  42. return False
  43. generate_info(cli.args.output, cli.args.keyboard, cli.args.keymap)