Parent directory

build_layout.mk

1259 bytes
 1LAYOUTS_PATH := layouts
 2LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/))))
 3
 4ifneq ($(QMK_USERSPACE),)
 5    LAYOUTS_REPOS += $(patsubst %/,%,$(QMK_USERSPACE)/$(LAYOUTS_PATH))
 6endif
 7
 8define 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        -include $$(LAYOUT_KEYMAP_PATH)/rules.mk
14        KEYMAP_JSON := $$(LAYOUT_KEYMAP_JSON)
15        KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
16    else 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
21endef
22
23define SEARCH_LAYOUTS
24    $$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_LAYOUTS_REPO)))
25endef
26
27ifneq ($(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
34endif
35
36$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))