mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-25 18:48:05 +06:00
2e734fb6b9
* Add config.h and rules.mk support for data driven keymaps * tidy up after rebase * Rename key as it can contain more than just keyboard overrides * tidy up after rebase * Add validation
33 lines
1.1 KiB
Makefile
33 lines
1.1 KiB
Makefile
LAYOUTS_PATH := layouts
|
|
LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/))))
|
|
|
|
define SEARCH_LAYOUTS_REPO
|
|
LAYOUT_KEYMAP_PATH := $$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP)
|
|
LAYOUT_KEYMAP_JSON := $$(LAYOUT_KEYMAP_PATH)/keymap.json
|
|
LAYOUT_KEYMAP_C := $$(LAYOUT_KEYMAP_PATH)/keymap.c
|
|
ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_JSON))","")
|
|
-include $$(LAYOUT_KEYMAP_PATH)/rules.mk
|
|
KEYMAP_JSON := $$(LAYOUT_KEYMAP_JSON)
|
|
KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
|
|
else ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","")
|
|
-include $$(LAYOUT_KEYMAP_PATH)/rules.mk
|
|
KEYMAP_C := $$(LAYOUT_KEYMAP_C)
|
|
KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
|
|
endif
|
|
endef
|
|
|
|
define SEARCH_LAYOUTS
|
|
$$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_LAYOUTS_REPO)))
|
|
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)))
|