forked from mirrors/qmk_userspace
		
	Add the ability to exclude keyboards from travis builds (#11178)
* add the ability to exclude keyboards from travis builds * add filtering to make all: * only skip keyboards during make all: * working implementation * forego a CI_KEYBOARDS variable * optimize the startup by only listing keyboards once * add sort -u to all list_keyboard invocations * move the if else if tree back to 1 level
This commit is contained in:
		
					parent
					
						
							
								a9f7d4dccc
							
						
					
				
			
			
				commit
				
					
						03cbee8637
					
				
			
		
					 9 changed files with 14 additions and 32 deletions
				
			
		
							
								
								
									
										36
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										36
									
								
								Makefile
									
										
									
									
									
								
							| 
						 | 
					@ -99,40 +99,13 @@ $(eval $(call NEXT_PATH_ELEMENT))
 | 
				
			||||||
#     endif
 | 
					#     endif
 | 
				
			||||||
# endif
 | 
					# 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))
 | 
					 | 
				
			||||||
    All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/*/rules.mk))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    KEYMAPS_MK := $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/keymaps/*/rules.mk))
 | 
					 | 
				
			||||||
    KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/keymaps/*/rules.mk))
 | 
					 | 
				
			||||||
    KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/keymaps/*/rules.mk))
 | 
					 | 
				
			||||||
    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))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Only consider folders with makefiles, to prevent errors in case there are extra folders
 | 
					 | 
				
			||||||
#KEYBOARDS += $(patsubst $(ROOD_DIR)/keyboards/%/rules.mk,%,$(wildcard $(ROOT_DIR)/keyboards/*/*/rules.mk))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.PHONY: list-keyboards
 | 
					.PHONY: list-keyboards
 | 
				
			||||||
list-keyboards:
 | 
					list-keyboards:
 | 
				
			||||||
	echo $(KEYBOARDS)
 | 
						util/list_keyboards.sh | sort -u | tr '\n' ' '
 | 
				
			||||||
 | 
					 | 
				
			||||||
define PRINT_KEYBOARD
 | 
					 | 
				
			||||||
	$(info $(PRINTING_KEYBOARD))
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: generate-keyboards-file
 | 
					.PHONY: generate-keyboards-file
 | 
				
			||||||
generate-keyboards-file:
 | 
					generate-keyboards-file:
 | 
				
			||||||
	$(foreach PRINTING_KEYBOARD,$(KEYBOARDS),$(eval $(call PRINT_KEYBOARD)))
 | 
						util/list_keyboards.sh | sort -u
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: clean
 | 
					.PHONY: clean
 | 
				
			||||||
clean:
 | 
					clean:
 | 
				
			||||||
| 
						 | 
					@ -159,7 +132,6 @@ endif
 | 
				
			||||||
# $(info Keyboard: $(KEYBOARD))
 | 
					# $(info Keyboard: $(KEYBOARD))
 | 
				
			||||||
# $(info Keymap: $(KEYMAP))
 | 
					# $(info Keymap: $(KEYMAP))
 | 
				
			||||||
# $(info Subproject: $(SUBPROJECT))
 | 
					# $(info Subproject: $(SUBPROJECT))
 | 
				
			||||||
# $(info Keyboards: $(KEYBOARDS))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set the default goal depending on where we are running make from
 | 
					# Set the default goal depending on where we are running make from
 | 
				
			||||||
| 
						 | 
					@ -294,7 +266,7 @@ define PARSE_RULE
 | 
				
			||||||
        $$(eval $$(call PARSE_TEST))
 | 
					        $$(eval $$(call PARSE_TEST))
 | 
				
			||||||
    # If the rule starts with the name of a known keyboard, then continue
 | 
					    # If the rule starts with the name of a known keyboard, then continue
 | 
				
			||||||
    # the parsing from PARSE_KEYBOARD
 | 
					    # the parsing from PARSE_KEYBOARD
 | 
				
			||||||
    else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYBOARDS)),true)
 | 
					    else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell util/list_keyboards.sh | sort -u)),true)
 | 
				
			||||||
        KEYBOARD_RULE=$$(MATCHED_ITEM)
 | 
					        KEYBOARD_RULE=$$(MATCHED_ITEM)
 | 
				
			||||||
        $$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
 | 
					        $$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
 | 
				
			||||||
    # Otherwise use the KEYBOARD variable, which is determined either by
 | 
					    # Otherwise use the KEYBOARD variable, which is determined either by
 | 
				
			||||||
| 
						 | 
					@ -411,7 +383,7 @@ endef
 | 
				
			||||||
# if we are going to compile all keyboards, match the rest of the rule
 | 
					# if we are going to compile all keyboards, match the rest of the rule
 | 
				
			||||||
# for each of them
 | 
					# for each of them
 | 
				
			||||||
define PARSE_ALL_KEYBOARDS
 | 
					define PARSE_ALL_KEYBOARDS
 | 
				
			||||||
    $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(KEYBOARDS)))
 | 
					    $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell util/list_keyboards.sh noci | sort -u)))
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# $1 Subproject
 | 
					# $1 Subproject
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										0
									
								
								keyboards/clueboard/17/.noci
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								keyboards/clueboard/17/.noci
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								keyboards/clueboard/2x1800/2018/.noci
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								keyboards/clueboard/2x1800/2018/.noci
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								keyboards/clueboard/60/.noci
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								keyboards/clueboard/60/.noci
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								keyboards/clueboard/66/rev1/.noci
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								keyboards/clueboard/66/rev1/.noci
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								keyboards/clueboard/66/rev2/.noci
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								keyboards/clueboard/66/rev2/.noci
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								keyboards/clueboard/66_hotswap/prototype/.noci
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								keyboards/clueboard/66_hotswap/prototype/.noci
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								keyboards/clueboard/card/.noci
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								keyboards/clueboard/card/.noci
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										10
									
								
								util/list_keyboards.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										10
									
								
								util/list_keyboards.sh
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					# Temporary shell script to find keyboards
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This allows us to exclude keyboards by including a .noci file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					find keyboards -type f -name rules.mk | grep -v keymaps | while read keyboard; do
 | 
				
			||||||
 | 
						keyboard=$(echo $keyboard | sed 's!keyboards/\(.*\)/rules.mk!\1!') 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ "$1" = "noci" -a -e "keyboards/${keyboard}/.noci" ] || echo "$keyboard"
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue