aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorFred Sundvik <fsundvik@gmail.com>2016-08-07 17:48:59 +0300
committerFred Sundvik <fsundvik@gmail.com>2016-08-20 03:56:19 +0300
commit2dd9c1edcdcc3fc579e6109daf9012f9a82b7435 (patch)
tree64d9e62c2ce0109b1430fade4cfd1ede9c1697c7 /Makefile
parent44441de8cad7255fd0637459ed39b89e34751b78 (diff)
downloadqmk_firmware-2dd9c1edcdcc3fc579e6109daf9012f9a82b7435.tar.gz
qmk_firmware-2dd9c1edcdcc3fc579e6109daf9012f9a82b7435.zip
Proper parsing of keymaps inside subprojects
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile26
1 files changed, 21 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index b2a873532..028d14393 100644
--- a/Makefile
+++ b/Makefile
@@ -131,16 +131,32 @@ endef
131# $1 Subproject 131# $1 Subproject
132define PARSE_SUBPROJECT 132define PARSE_SUBPROJECT
133 ifeq ($1,defaultsp) 133 ifeq ($1,defaultsp)
134 SUBPROJECT_DEFAULT=
134 $$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/Makefile) 135 $$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/Makefile)
135 CURRENT_SP := $$(SUBPROJECT_DEFAULT) 136 CURRENT_SP := $$(SUBPROJECT_DEFAULT)
136 else 137 else
137 CURRENT_SP := $1 138 CURRENT_SP := $1
138 endif 139 endif
139 KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/keymaps/*/.))) 140 # If current subproject is empty (the default was not defined), and we have a list of subproject
140 ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkm),true) 141 # then make all
141 $$(eval $$(call PARSE_ALL_KEYMAPS)) 142 ifeq ($$(CURRENT_SP),)
142 else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYMAPS)),true) 143 ifneq ($$(SUBPROJECTS),)
143 $$(eval $$(call PARSE_KEYMAP,$$(MATCHED_ITEM))) 144 CURRENT_SP := allsp
145 endif
146 endif
147 ifneq ($$(CURRENT_SP),allsp)
148 KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/keymaps/*/.)))
149 ifneq ($$(CURRENT_SP),)
150 SP_KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/$$(CURRENT_SP)/keymaps/*/.)))
151 KEYMAPS := $$(sort $$(KEYMAPS) $$(SP_KEYMAPS))
152 endif
153 ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkm),true)
154 $$(eval $$(call PARSE_ALL_KEYMAPS))
155 else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYMAPS)),true)
156 $$(eval $$(call PARSE_KEYMAP,$$(MATCHED_ITEM)))
157 endif
158 else
159 $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$(SUBPROJECTS)))
144 endif 160 endif
145endef 161endef
146 162