1
0
Fork 0
forked from forks/qmk_firmware

Proper parsing of keymaps inside subprojects

This commit is contained in:
Fred Sundvik 2016-08-07 17:48:59 +03:00
parent 44441de8ca
commit 2dd9c1edcd

View file

@ -131,17 +131,33 @@ endef
# $1 Subproject # $1 Subproject
define PARSE_SUBPROJECT define PARSE_SUBPROJECT
ifeq ($1,defaultsp) ifeq ($1,defaultsp)
SUBPROJECT_DEFAULT=
$$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/Makefile) $$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/Makefile)
CURRENT_SP := $$(SUBPROJECT_DEFAULT) CURRENT_SP := $$(SUBPROJECT_DEFAULT)
else else
CURRENT_SP := $1 CURRENT_SP := $1
endif endif
# If current subproject is empty (the default was not defined), and we have a list of subproject
# then make all
ifeq ($$(CURRENT_SP),)
ifneq ($$(SUBPROJECTS),)
CURRENT_SP := allsp
endif
endif
ifneq ($$(CURRENT_SP),allsp)
KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/keymaps/*/.))) KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/keymaps/*/.)))
ifneq ($$(CURRENT_SP),)
SP_KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/$$(CURRENT_SP)/keymaps/*/.)))
KEYMAPS := $$(sort $$(KEYMAPS) $$(SP_KEYMAPS))
endif
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkm),true) ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkm),true)
$$(eval $$(call PARSE_ALL_KEYMAPS)) $$(eval $$(call PARSE_ALL_KEYMAPS))
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYMAPS)),true) else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYMAPS)),true)
$$(eval $$(call PARSE_KEYMAP,$$(MATCHED_ITEM))) $$(eval $$(call PARSE_KEYMAP,$$(MATCHED_ITEM)))
endif endif
else
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$(SUBPROJECTS)))
endif
endef endef
define PARSE_ALL_SUBPROJECTS define PARSE_ALL_SUBPROJECTS