forked from mirrors/qmk_userspace
		
	Add a mechanism for force building a particular community layout (#5027)
* Add a mechanism for force building a particular community layout * Add docs for FORCE_LAYOUT argument * Update output name when FORCE_LAYOUT is enabled
This commit is contained in:
		
					parent
					
						
							
								85022f8bb5
							
						
					
				
			
			
				commit
				
					
						40e67a3074
					
				
			
		
					 3 changed files with 42 additions and 0 deletions
				
			
		| 
						 | 
					@ -135,6 +135,10 @@ ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
 | 
				
			||||||
    OPT_DEFS += -DCONVERT_TO_PROTON_C
 | 
					    OPT_DEFS += -DCONVERT_TO_PROTON_C
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ifneq ($(FORCE_LAYOUT),)
 | 
				
			||||||
 | 
					    TARGET := $(TARGET)_$(FORCE_LAYOUT)
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include quantum/mcu_selection.mk
 | 
					include quantum/mcu_selection.mk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifdef MCU_FAMILY
 | 
					ifdef MCU_FAMILY
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,4 +15,13 @@ define SEARCH_LAYOUTS
 | 
				
			||||||
    $$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_LAYOUTS_REPO)))
 | 
					    $$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_LAYOUTS_REPO)))
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ifneq ($(FORCE_LAYOUT),)
 | 
				
			||||||
 | 
					    ifneq (,$(findstring $(FORCE_LAYOUT),$(LAYOUTS)))
 | 
				
			||||||
 | 
					        $(info Forcing layout: $(FORCE_LAYOUT))
 | 
				
			||||||
 | 
					        LAYOUTS := $(FORCE_LAYOUT)
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        $(error Forced layout does not exist)
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))
 | 
					$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))
 | 
				
			||||||
| 
						 | 
					@ -51,6 +51,35 @@ The folder name must be added to the keyboard's `rules.mk`:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
but the `LAYOUT_<layout>` variable must be defined in `<folder>.h` as well.
 | 
					but the `LAYOUT_<layout>` variable must be defined in `<folder>.h` as well.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Building a Keymap
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You should be able to build the keyboard keymap with a command in this format:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    make <keyboard>:<layout>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Conflicting layouts
 | 
				
			||||||
 | 
					When a keyboard supports multiple layout options,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    LAYOUTS = ortho_4x4 ortho_4x12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					And a layout exists for both options,
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					layouts/
 | 
				
			||||||
 | 
					+ community/
 | 
				
			||||||
 | 
					| + ortho_4x4/
 | 
				
			||||||
 | 
					| | + <layout>/
 | 
				
			||||||
 | 
					| | | + ...
 | 
				
			||||||
 | 
					| + ortho_4x12/
 | 
				
			||||||
 | 
					| | + <layout>/
 | 
				
			||||||
 | 
					| | | + ...
 | 
				
			||||||
 | 
					| + ...
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The FORCE_LAYOUT argument can be used to specify which layout to build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    make <keyboard>:<layout> FORCE_LAYOUT=ortho_4x4
 | 
				
			||||||
 | 
					    make <keyboard>:<layout> FORCE_LAYOUT=ortho_4x12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Tips for Making Layouts Keyboard-Agnostic
 | 
					## Tips for Making Layouts Keyboard-Agnostic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Includes
 | 
					### Includes
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue