forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #151 from qmk/master
Sync to master
- Loading branch information
Showing
18 changed files
with
146 additions
and
105 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
"""Compile a QMK Firmware. | ||
You can compile a keymap already in the repo or using a QMK Configurator export. | ||
""" | ||
import json | ||
import os | ||
import sys | ||
import subprocess | ||
from argparse import FileType | ||
|
||
from milc import cli | ||
|
||
import qmk.keymap | ||
import qmk.path | ||
|
||
|
||
@cli.argument('filename', nargs='?', type=FileType('r'), help='The configurator export to compile') | ||
@cli.argument('-kb', '--keyboard', help='The keyboard to build a firmware for. Ignored when a configurator export is supplied.') | ||
@cli.argument('-km', '--keymap', help='The keymap to build a firmware for. Ignored when a configurator export is supplied.') | ||
@cli.entrypoint('Compile a QMK Firmware.') | ||
def main(cli): | ||
"""Compile a QMK Firmware. | ||
If a Configurator export is supplied this command will create a new keymap, overwriting an existing keymap if one exists. | ||
FIXME(skullydazed): add code to check and warn if the keymap already exists | ||
If --keyboard and --keymap are provided this command will build a firmware based on that. | ||
""" | ||
if cli.args.filename: | ||
# Parse the configurator json | ||
user_keymap = json.load(cli.args.filename) | ||
|
||
# Generate the keymap | ||
keymap_path = qmk.path.keymap(user_keymap['keyboard']) | ||
cli.log.info('Creating {fg_cyan}%s{style_reset_all} keymap in {fg_cyan}%s', user_keymap['keymap'], keymap_path) | ||
qmk.keymap.write(user_keymap['keyboard'], user_keymap['keymap'], user_keymap['layout'], user_keymap['layers']) | ||
cli.log.info('Wrote keymap to {fg_cyan}%s/%s/keymap.c', keymap_path, user_keymap['keymap']) | ||
|
||
# Compile the keymap | ||
command = ['make', ':'.join((user_keymap['keyboard'], user_keymap['keymap']))] | ||
|
||
elif cli.config.general.keyboard and cli.config.general.keymap: | ||
# Generate the make command for a specific keyboard/keymap. | ||
command = ['make', ':'.join((cli.config.general.keyboard, cli.config.general.keymap))] | ||
|
||
else: | ||
cli.log.error('You must supply a configurator export or both `--keyboard` and `--keymap`.') | ||
return False | ||
|
||
cli.log.info('Compiling keymap with {fg_cyan}%s\n\n', ' '.join(command)) | ||
subprocess.run(command) |
Empty file.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.