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
					
				
							
								
								
									
										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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user