summaryrefslogtreecommitdiff
path: root/lib/python/qmk/commands.py
diff options
context:
space:
mode:
authorruro <ruro.ruro@ya.ru>2021-08-18 01:46:59 +0300
committerGitHub <noreply@github.com>2021-08-18 08:46:59 +1000
commit3b28178deb7a42a2df8c19b9bf190bb5da732b33 (patch)
treebbffcc4752948a0f5a52c31930f3ada863e67f44 /lib/python/qmk/commands.py
parent999391f3ae6bab3fe1784d0f53bffd0320a9e076 (diff)
`--parallel` improvements (#13800)
* improve make parallel jobs support * document the --parallel option * disable the output-sync for interactive targets
Diffstat (limited to 'lib/python/qmk/commands.py')
-rw-r--r--lib/python/qmk/commands.py23
1 files changed, 20 insertions, 3 deletions
diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py
index 8c66228b2b..421453d837 100644
--- a/lib/python/qmk/commands.py
+++ b/lib/python/qmk/commands.py
@@ -52,7 +52,7 @@ def create_make_target(target, parallel=1, **env_vars):
for key, value in env_vars.items():
env.append(f'{key}={value}')
- return [make_cmd, '-j', str(parallel), *env, target]
+ return [make_cmd, *get_make_parallel_args(parallel), *env, target]
def create_make_command(keyboard, keymap, target=None, parallel=1, **env_vars):
@@ -112,6 +112,24 @@ def get_git_version(current_time, repo_dir='.', check_dir='.'):
return current_time
+def get_make_parallel_args(parallel=1):
+ """Returns the arguments for running the specified number of parallel jobs.
+ """
+ parallel_args = []
+
+ if int(parallel) <= 0:
+ # 0 or -1 means -j without argument (unlimited jobs)
+ parallel_args.append('--jobs')
+ else:
+ parallel_args.append('--jobs=' + str(parallel))
+
+ if int(parallel) != 1:
+ # If more than 1 job is used, synchronize parallel output by target
+ parallel_args.append('--output-sync=target')
+
+ return parallel_args
+
+
def create_version_h(skip_git=False, skip_all=False):
"""Generate version.h contents
"""
@@ -185,8 +203,7 @@ def compile_configurator_json(user_keymap, bootloader=None, parallel=1, **env_va
make_command.append('-s')
make_command.extend([
- '-j',
- str(parallel),
+ *get_make_parallel_args(parallel),
'-r',
'-R',
'-f',