Skip to content

Commit

Permalink
Add an alternative method for keyboard discovery to speed up build (q…
Browse files Browse the repository at this point in the history
…mk#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
  • Loading branch information
zvecr authored and fdidron committed Aug 28, 2019
1 parent fd63ea5 commit ba5c462
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
9 changes: 8 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@ endif
override SILENT := false

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),)
$(info QMK Firmware $(QMK_VERSION))
endif
Expand Down Expand Up @@ -94,6 +97,7 @@ $(eval $(call NEXT_PATH_ELEMENT))
# endif

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))
Expand All @@ -105,6 +109,9 @@ define GET_KEYBOARDS
KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/*/keymaps/*/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

$(eval $(call GET_KEYBOARDS))
Expand Down
8 changes: 7 additions & 1 deletion util/docker_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,11 @@ fi
dir=$(pwd -W 2>/dev/null) || dir=$PWD # Use Windows path if on Windows

# 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}"

0 comments on commit ba5c462

Please sign in to comment.