diff options
| author | zvecr | 2022-02-26 00:45:40 +0100 |
|---|---|---|
| committer | zvecr | 2022-02-26 00:45:40 +0100 |
| commit | e7931289918221081cbe2a7ea5df27a5d86324db (patch) | |
| tree | 0b06145520f8aaf5ff5cb928aa5176fc2dd23619 /builddefs/build_layout.mk | |
| parent | c0ee3d2c79388187883b1b1b1d1a0b6842acf741 (diff) | |
| parent | cf31355f08dca311a013168eb3eb995e2fc6a3d1 (diff) | |
Merge remote-tracking branch 'origin/develop'
Diffstat (limited to 'builddefs/build_layout.mk')
| -rw-r--r-- | builddefs/build_layout.mk | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/builddefs/build_layout.mk b/builddefs/build_layout.mk new file mode 100644 index 0000000000..6166bd847c --- /dev/null +++ b/builddefs/build_layout.mk @@ -0,0 +1,32 @@ +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 + $(call CATASTROPHIC_ERROR,Invalid layout,Forced layout does not exist) + endif +endif + +$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS))) |