forked from mirrors/qmk_firmware
Add an alternative method for keyboard discovery to speed up build (#6073)
* Add an alternative method for keyboard discovery to speed up build * Chain MAKEFLAGS for docker_build.sh * Slight improvement to number of items sent to sort * Remove debug line * Fix line escape
This commit is contained in:
parent
fadb69e203
commit
9813a6f950
2 changed files with 15 additions and 2 deletions
9
Makefile
9
Makefile
|
@ -20,7 +20,10 @@ endif
|
||||||
override SILENT := false
|
override SILENT := false
|
||||||
|
|
||||||
ifndef SUB_IS_SILENT
|
ifndef SUB_IS_SILENT
|
||||||
QMK_VERSION := $(shell git describe --abbrev=0 --tags 2>/dev/null)
|
ifndef SKIP_GIT
|
||||||
|
QMK_VERSION := $(shell git describe --abbrev=0 --tags 2>/dev/null)
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($(QMK_VERSION),)
|
ifneq ($(QMK_VERSION),)
|
||||||
$(info QMK Firmware $(QMK_VERSION))
|
$(info QMK Firmware $(QMK_VERSION))
|
||||||
endif
|
endif
|
||||||
|
@ -94,6 +97,7 @@ $(eval $(call NEXT_PATH_ELEMENT))
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
define GET_KEYBOARDS
|
define GET_KEYBOARDS
|
||||||
|
ifndef ALT_GET_KEYBOARDS
|
||||||
All_RULES_MK := $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/rules.mk))
|
All_RULES_MK := $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/rules.mk))
|
||||||
All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/rules.mk))
|
All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/rules.mk))
|
||||||
All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/rules.mk))
|
All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/rules.mk))
|
||||||
|
@ -105,6 +109,9 @@ define GET_KEYBOARDS
|
||||||
KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/*/keymaps/*/rules.mk))
|
KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/*/keymaps/*/rules.mk))
|
||||||
|
|
||||||
KEYBOARDS := $$(sort $$(filter-out $$(KEYMAPS_MK), $$(All_RULES_MK)))
|
KEYBOARDS := $$(sort $$(filter-out $$(KEYMAPS_MK), $$(All_RULES_MK)))
|
||||||
|
else
|
||||||
|
KEYBOARDS := $(shell find keyboards/ -type f -iname "rules.mk" | grep -v keymaps | sed 's!keyboards/\(.*\)/rules.mk!\1!' | sort | uniq)
|
||||||
|
endif
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call GET_KEYBOARDS))
|
$(eval $(call GET_KEYBOARDS))
|
||||||
|
|
|
@ -46,5 +46,11 @@ fi
|
||||||
dir=$(pwd -W 2>/dev/null) || dir=$PWD # Use Windows path if on Windows
|
dir=$(pwd -W 2>/dev/null) || dir=$PWD # Use Windows path if on Windows
|
||||||
|
|
||||||
# Run container and build firmware
|
# Run container and build firmware
|
||||||
docker run --rm -it $usb_args -w /qmk_firmware/ -v "$dir":/qmk_firmware qmkfm/base_container \
|
docker run --rm -it $usb_args \
|
||||||
|
-w /qmk_firmware/ \
|
||||||
|
-v "$dir":/qmk_firmware \
|
||||||
|
-e ALT_GET_KEYBOARDS=true \
|
||||||
|
-e SKIP_GIT="$SKIP_GIT" \
|
||||||
|
-e MAKEFLAGS="$MAKEFLAGS" \
|
||||||
|
qmkfm/base_container \
|
||||||
make "$keyboard${keymap:+:$keymap}${target:+:$target}"
|
make "$keyboard${keymap:+:$keymap}${target:+:$target}"
|
||||||
|
|
Loading…
Reference in a new issue