mirror of
https://github.com/qmk/qmk_firmware
synced 2024-11-18 01:46:09 +00:00
Allow MAKE environment override for 'qmk clean' (#12473)
This commit is contained in:
parent
60a39f4f5d
commit
7725d813c9
2 changed files with 30 additions and 12 deletions
|
@ -1,16 +1,12 @@
|
|||
"""Clean the QMK firmware folder of build artifacts.
|
||||
"""
|
||||
from qmk.commands import run
|
||||
from qmk.commands import run, create_make_target
|
||||
from milc import cli
|
||||
|
||||
import shutil
|
||||
|
||||
|
||||
@cli.argument('-a', '--all', arg_only=True, action='store_true', help='Remove *.hex and *.bin files in the QMK root as well.')
|
||||
@cli.subcommand('Clean the QMK firmware folder of build artifacts.')
|
||||
def clean(cli):
|
||||
"""Runs `make clean` (or `make distclean` if --all is passed)
|
||||
"""
|
||||
make_cmd = 'gmake' if shutil.which('gmake') else 'make'
|
||||
|
||||
run([make_cmd, 'distclean' if cli.args.all else 'clean'])
|
||||
run(create_make_target('distclean' if cli.args.all else 'clean'))
|
||||
|
|
|
@ -29,6 +29,33 @@ def _find_make():
|
|||
return make_cmd
|
||||
|
||||
|
||||
def create_make_target(target, parallel=1, **env_vars):
|
||||
"""Create a make command
|
||||
|
||||
Args:
|
||||
|
||||
target
|
||||
Usually a make rule, such as 'clean' or 'all'.
|
||||
|
||||
parallel
|
||||
The number of make jobs to run in parallel
|
||||
|
||||
**env_vars
|
||||
Environment variables to be passed to make.
|
||||
|
||||
Returns:
|
||||
|
||||
A command that can be run to make the specified keyboard and keymap
|
||||
"""
|
||||
env = []
|
||||
make_cmd = _find_make()
|
||||
|
||||
for key, value in env_vars.items():
|
||||
env.append(f'{key}={value}')
|
||||
|
||||
return [make_cmd, '-j', str(parallel), *env, target]
|
||||
|
||||
|
||||
def create_make_command(keyboard, keymap, target=None, parallel=1, **env_vars):
|
||||
"""Create a make compile command
|
||||
|
||||
|
@ -53,17 +80,12 @@ def create_make_command(keyboard, keymap, target=None, parallel=1, **env_vars):
|
|||
|
||||
A command that can be run to make the specified keyboard and keymap
|
||||
"""
|
||||
env = []
|
||||
make_args = [keyboard, keymap]
|
||||
make_cmd = _find_make()
|
||||
|
||||
if target:
|
||||
make_args.append(target)
|
||||
|
||||
for key, value in env_vars.items():
|
||||
env.append(f'{key}={value}')
|
||||
|
||||
return [make_cmd, '-j', str(parallel), *env, ':'.join(make_args)]
|
||||
return create_make_target(':'.join(make_args), parallel, **env_vars)
|
||||
|
||||
|
||||
def get_git_version(repo_dir='.', check_dir='.'):
|
||||
|
|
Loading…
Reference in a new issue