forked from mirrors/qmk_firmware
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…
Reference in a new issue