build_layout.mk (1220B)
1 LAYOUTS_PATH := layouts 2 LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/)))) 3 4 ifneq ($(QMK_USERSPACE),) 5 LAYOUTS_REPOS += $(patsubst %/,%,$(QMK_USERSPACE)/$(LAYOUTS_PATH)) 6 endif 7 8 define SEARCH_LAYOUTS_REPO 9 LAYOUT_KEYMAP_PATH := $$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP) 10 LAYOUT_KEYMAP_JSON := $$(LAYOUT_KEYMAP_PATH)/keymap.json 11 LAYOUT_KEYMAP_C := $$(LAYOUT_KEYMAP_PATH)/keymap.c 12 ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_JSON))","") 13 KEYMAP_JSON := $$(LAYOUT_KEYMAP_JSON) 14 KEYMAP_JSON_PATH := $$(LAYOUT_KEYMAP_PATH) 15 endif 16 ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","") 17 -include $$(LAYOUT_KEYMAP_PATH)/rules.mk 18 KEYMAP_C := $$(LAYOUT_KEYMAP_C) 19 KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH) 20 endif 21 endef 22 23 define SEARCH_LAYOUTS 24 $$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_LAYOUTS_REPO))) 25 endef 26 27 ifneq ($(FORCE_LAYOUT),) 28 ifneq (,$(findstring $(FORCE_LAYOUT),$(LAYOUTS))) 29 $(info Forcing layout: $(FORCE_LAYOUT)) 30 LAYOUTS := $(FORCE_LAYOUT) 31 else 32 $(call CATASTROPHIC_ERROR,Invalid layout,Forced layout does not exist) 33 endif 34 endif 35 36 $(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))