adds autocomplete for keyboard, subproject, keymap for make

make_autocomplete
Jack Humbert 7 years ago
parent 4cdcbdb861
commit 0bb049b926

@ -21,8 +21,10 @@ override SILENT := false
QMK_VERSION := $(shell git describe --abbrev=0 --tags 2>/dev/null) QMK_VERSION := $(shell git describe --abbrev=0 --tags 2>/dev/null)
ifneq ($(QMK_VERSION),) ifneq ($(QMK_VERSION),)
ifeq ($(NO_VERSION),)
$(info QMK Firmware v$(QMK_VERSION)) $(info QMK Firmware v$(QMK_VERSION))
endif endif
endif
ON_ERROR := error_occurred=1 ON_ERROR := error_occurred=1
@ -564,6 +566,50 @@ git-submodule:
git submodule sync --recursive git submodule sync --recursive
git submodule update --init --recursive git submodule update --init --recursive
define PRINT_OPTION
ifeq ($$(SUBPROJECT_OPTION),)
ALL_OPTIONS += $$(KEYBOARD_OPTION)-$$(KEYMAP_OPTION)
else
ALL_OPTIONS += $$(KEYBOARD_OPTION)-$$(SUBPROJECT_OPTION)-$$(KEYMAP_OPTION)
endif
endef
define ALL_KEYMAPS
KEYMAPS_OPTION := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_OPTION)/keymaps/*/.)))
LAYOUTS :=
$$(eval -include $(ROOT_DIR)/keyboards/$$(KEYBOARD_OPTION)/rules.mk)
KEYBOARD_LAYOUTS := $$(LAYOUTS)
ifneq ($$(SUBPROJECT_OPTION),)
SP_KEYMAPS_OPTION := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_OPTION)/$$(SUBPROJECT_OPTION)/keymaps/*/.)))
KEYMAPS_OPTION := $$(sort $$(KEYMAPS_OPTION) $$(SP_KEYMAPS_OPTION))
endif
LAYOUT_KEYMAPS_OPTION :=
$$(foreach LAYOUT_OPTION,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS_OPTION += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT_OPTION)/*/.)))))
KEYMAPS_OPTION := $$(sort $$(KEYMAPS_OPTION) $$(LAYOUT_KEYMAPS_OPTION))
$$(foreach KEYMAP_OPTION, $$(KEYMAPS_OPTION), $$(eval $$(call PRINT_OPTION)))
endef
define ALL_SUBPROJECTS
SUBPROJECTS_OPTION := $$(notdir $$(patsubst %/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_OPTION)/*/rules.mk)))
$$(eval $$(call ALL_KEYMAPS))
ifneq ($$(SUBPROJECT_OPTION),)
$$(foreach SUBPROJECT_OPTION, $$(SUBPROJECTS_OPTION), $$(eval $$(call ALL_KEYMAPS)))
endif
endef
define ALL_KEYBOARDS
$$(foreach KEYBOARD_OPTION,$$(KEYBOARDS), $$(eval $$(call ALL_SUBPROJECTS)))
endef
ALL_OPTIONS :=
$(eval $(call ALL_KEYBOARDS))
autocomplete:
echo $(ALL_OPTIONS)
ifdef SKIP_VERSION ifdef SKIP_VERSION
SKIP_GIT := yes SKIP_GIT := yes
endif endif

Loading…
Cancel
Save