diff options
Diffstat (limited to 'lib')
| -rwxr-xr-x | lib/python/qmk/cli/mass_compile.py | 17 | ||||
| -rw-r--r-- | lib/python/qmk/commands.py | 26 | ||||
| -rw-r--r-- | lib/python/qmk/constants.py | 2 |
3 files changed, 21 insertions, 24 deletions
diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py index 52c1cae4c2..ddd946a32b 100755 --- a/lib/python/qmk/cli/mass_compile.py +++ b/lib/python/qmk/cli/mass_compile.py | |||
| @@ -53,20 +53,22 @@ def mass_compile(cli): | |||
| 53 | keyboard_name = target[0] | 53 | keyboard_name = target[0] |
| 54 | keymap_name = target[1] | 54 | keymap_name = target[1] |
| 55 | keyboard_safe = keyboard_name.replace('/', '_') | 55 | keyboard_safe = keyboard_name.replace('/', '_') |
| 56 | build_log = f"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" | ||
| 57 | failed_log = f"{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" | ||
| 56 | # yapf: disable | 58 | # yapf: disable |
| 57 | f.write( | 59 | f.write( |
| 58 | f"""\ | 60 | f"""\ |
| 59 | all: {keyboard_safe}_{keymap_name}_binary | 61 | all: {keyboard_safe}_{keymap_name}_binary |
| 60 | {keyboard_safe}_{keymap_name}_binary: | 62 | {keyboard_safe}_{keymap_name}_binary: |
| 61 | @rm -f "{QMK_FIRMWARE}/.build/failed.log.{keyboard_safe}.{keymap_name}" || true | 63 | @rm -f "{build_log}" || true |
| 62 | @echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}" | 64 | @echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{build_log}" |
| 63 | +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{keymap_name}" COLOR=true SILENT=false {' '.join(cli.args.env)} \\ | 65 | +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{keymap_name}" COLOR=true SILENT=false {' '.join(cli.args.env)} \\ |
| 64 | >>"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" 2>&1 \\ | 66 | >>"{build_log}" 2>&1 \\ |
| 65 | || cp "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" "{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" | 67 | || cp "{build_log}" "{failed_log}" |
| 66 | @{{ grep '\[ERRORS\]' "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" >/dev/null 2>&1 && printf "Build %-64s \e[1;31m[ERRORS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ | 68 | @{{ grep '\[ERRORS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;31m[ERRORS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ |
| 67 | || {{ grep '\[WARNINGS\]' "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" >/dev/null 2>&1 && printf "Build %-64s \e[1;33m[WARNINGS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ | 69 | || {{ grep '\[WARNINGS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;33m[WARNINGS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ |
| 68 | || printf "Build %-64s \e[1;32m[OK]\e[0m\\n" "{keyboard_name}:{keymap_name}" | 70 | || printf "Build %-64s \e[1;32m[OK]\e[0m\\n" "{keyboard_name}:{keymap_name}" |
| 69 | @rm -f "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" || true | 71 | @rm -f "{build_log}" || true |
| 70 | """# noqa | 72 | """# noqa |
| 71 | ) | 73 | ) |
| 72 | # yapf: enable | 74 | # yapf: enable |
| @@ -77,7 +79,6 @@ all: {keyboard_safe}_{keymap_name}_binary | |||
| 77 | f"""\ | 79 | f"""\ |
| 78 | @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.elf" 2>/dev/null || true | 80 | @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.elf" 2>/dev/null || true |
| 79 | @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.map" 2>/dev/null || true | 81 | @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.map" 2>/dev/null || true |
| 80 | @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}" || true | ||
| 81 | @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}_{keymap_name}" || true | 82 | @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}_{keymap_name}" || true |
| 82 | """# noqa | 83 | """# noqa |
| 83 | ) | 84 | ) |
diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py index b1eac13957..ab8e323edf 100644 --- a/lib/python/qmk/commands.py +++ b/lib/python/qmk/commands.py | |||
| @@ -9,7 +9,7 @@ from pathlib import Path | |||
| 9 | from milc import cli | 9 | from milc import cli |
| 10 | import jsonschema | 10 | import jsonschema |
| 11 | 11 | ||
| 12 | from qmk.constants import KEYBOARD_OUTPUT_PREFIX | 12 | from qmk.constants import INTERMEDIATE_OUTPUT_PREFIX |
| 13 | from qmk.json_schema import json_load, validate | 13 | from qmk.json_schema import json_load, validate |
| 14 | 14 | ||
| 15 | 15 | ||
| @@ -134,16 +134,13 @@ def compile_configurator_json(user_keymap, bootloader=None, parallel=1, clean=Fa | |||
| 134 | 134 | ||
| 135 | keyboard_filesafe = user_keymap['keyboard'].replace('/', '_') | 135 | keyboard_filesafe = user_keymap['keyboard'].replace('/', '_') |
| 136 | target = f'{keyboard_filesafe}_{user_keymap["keymap"]}' | 136 | target = f'{keyboard_filesafe}_{user_keymap["keymap"]}' |
| 137 | keyboard_output = Path(f'{KEYBOARD_OUTPUT_PREFIX}{keyboard_filesafe}') | 137 | intermediate_output = Path(f'{INTERMEDIATE_OUTPUT_PREFIX}{keyboard_filesafe}_{user_keymap["keymap"]}') |
| 138 | keymap_output = Path(f'{keyboard_output}_{user_keymap["keymap"]}') | 138 | keymap_dir = intermediate_output / 'src' |
| 139 | keymap_dir = keymap_output / 'src' | ||
| 140 | keymap_json = keymap_dir / 'keymap.json' | 139 | keymap_json = keymap_dir / 'keymap.json' |
| 141 | 140 | ||
| 142 | if clean: | 141 | if clean: |
| 143 | if keyboard_output.exists(): | 142 | if intermediate_output.exists(): |
| 144 | shutil.rmtree(keyboard_output) | 143 | shutil.rmtree(intermediate_output) |
| 145 | if keymap_output.exists(): | ||
| 146 | shutil.rmtree(keymap_output) | ||
| 147 | 144 | ||
| 148 | # begin with making the deepest folder in the tree | 145 | # begin with making the deepest folder in the tree |
| 149 | keymap_dir.mkdir(exist_ok=True, parents=True) | 146 | keymap_dir.mkdir(exist_ok=True, parents=True) |
| @@ -183,13 +180,12 @@ def compile_configurator_json(user_keymap, bootloader=None, parallel=1, clean=Fa | |||
| 183 | f'KEYMAP={user_keymap["keymap"]}', | 180 | f'KEYMAP={user_keymap["keymap"]}', |
| 184 | f'KEYBOARD_FILESAFE={keyboard_filesafe}', | 181 | f'KEYBOARD_FILESAFE={keyboard_filesafe}', |
| 185 | f'TARGET={target}', | 182 | f'TARGET={target}', |
| 186 | f'KEYBOARD_OUTPUT={keyboard_output}', | 183 | f'INTERMEDIATE_OUTPUT={intermediate_output}', |
| 187 | f'KEYMAP_OUTPUT={keymap_output}', | 184 | f'MAIN_KEYMAP_PATH_1={intermediate_output}', |
| 188 | f'MAIN_KEYMAP_PATH_1={keymap_output}', | 185 | f'MAIN_KEYMAP_PATH_2={intermediate_output}', |
| 189 | f'MAIN_KEYMAP_PATH_2={keymap_output}', | 186 | f'MAIN_KEYMAP_PATH_3={intermediate_output}', |
| 190 | f'MAIN_KEYMAP_PATH_3={keymap_output}', | 187 | f'MAIN_KEYMAP_PATH_4={intermediate_output}', |
| 191 | f'MAIN_KEYMAP_PATH_4={keymap_output}', | 188 | f'MAIN_KEYMAP_PATH_5={intermediate_output}', |
| 192 | f'MAIN_KEYMAP_PATH_5={keymap_output}', | ||
| 193 | f'KEYMAP_JSON={keymap_json}', | 189 | f'KEYMAP_JSON={keymap_json}', |
| 194 | f'KEYMAP_PATH={keymap_dir}', | 190 | f'KEYMAP_PATH={keymap_dir}', |
| 195 | f'VERBOSE={verbose}', | 191 | f'VERBOSE={verbose}', |
diff --git a/lib/python/qmk/constants.py b/lib/python/qmk/constants.py index 8a13029a8a..04ec4f6a16 100644 --- a/lib/python/qmk/constants.py +++ b/lib/python/qmk/constants.py | |||
| @@ -123,7 +123,7 @@ ROW_LETTERS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnop' | |||
| 123 | 123 | ||
| 124 | # Constants that should match their counterparts in make | 124 | # Constants that should match their counterparts in make |
| 125 | BUILD_DIR = environ.get('BUILD_DIR', '.build') | 125 | BUILD_DIR = environ.get('BUILD_DIR', '.build') |
| 126 | KEYBOARD_OUTPUT_PREFIX = f'{BUILD_DIR}/obj_' | 126 | INTERMEDIATE_OUTPUT_PREFIX = f'{BUILD_DIR}/obj_' |
| 127 | 127 | ||
| 128 | # Headers for generated files | 128 | # Headers for generated files |
| 129 | GPL2_HEADER_C_LIKE = f'''\ | 129 | GPL2_HEADER_C_LIKE = f'''\ |
