]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Proper looping for allkb and allkm
authorFred Sundvik <fsundvik@gmail.com>
Thu, 4 Aug 2016 06:56:03 +0000 (09:56 +0300)
committerFred Sundvik <fsundvik@gmail.com>
Sat, 20 Aug 2016 00:24:40 +0000 (03:24 +0300)
Makefile

index e88eeefee49c15c32ac63592f507e139d407242f..57cf3f523aed5a03c4a9e65b12d36738b1dcea4a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -78,21 +78,32 @@ define TRY_TO_MATCH_RULE_FROM_LIST
     endif
 endef
 
+define ALL_IN_LIST_LOOP
+    OLD_RULE$1 := $$(RULE)
+    $$(eval $$(call $1,$$(ITEM$1)))
+    RULE := $$(OLD_RULE$1)
+endef
+
+define PARSE_ALL_IN_LIST
+    $$(foreach ITEM$1,$2,$$(eval $$(call ALL_IN_LIST_LOOP,$1)))
+endef
 
 define PARSE_ALL_KEYBOARDS
-    COMMANDS += allkb
-    #$$(info $$(RULE))
-    COMMAND_allkb := "All keyboards with $$(RULE)"
+    $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(KEYBOARDS)))
+endef
+
+define PARSE_ALL_KEYMAPS
+    $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS)))
 endef
 
 # $1 = Keyboard
 define PARSE_KEYBOARD
     CURRENT_KB := $1
+    KEYMAPS := $(notdir $(patsubst %/.,%,$(wildcard $(ROOT_DIR)/keyboards/$1/keymaps/*/.)))
     $$(eval $$(call COMPARE_AND_REMOVE_FROM_RULE,allkm))
     ifeq ($$(RULE_FOUND),true)
         $$(eval $$(call PARSE_ALL_KEYMAPS))
     else
-        KEYMAPS := $(notdir $(patsubst %/.,%,$(wildcard $(ROOT_DIR)/keyboards/$1/keymaps/*/.)))
         $$(eval $$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYMAPS)))
         ifeq ($$(RULE_FOUND),true)
             $$(eval $$(call PARSE_KEYMAP,$$(MATCHED_ITEM)))
@@ -100,11 +111,6 @@ define PARSE_KEYBOARD
     endif
 endef
 
-define PARSE_ALL_KEYMAPS
-    COMMANDS += ALL_KEYMAPS
-    COMMAND_ALL_KEYMAPS := All keymaps in $(CURRENT_KB)
-endef
-
 # $1 Keymap
 define PARSE_KEYMAP
     CURRENT_KM = $1
@@ -112,7 +118,6 @@ define PARSE_KEYMAP
     COMMAND_KEYBOARD_$$(CURRENT_KB)_KEYMAP_$$(CURRENT_KM) := Keyboard $$(CURRENT_KB), Keymap $$(CURRENT_KM)
 endef
 
-
 define PARSE_RULE
     RULE := $1
     COMMANDS :=