diff options
author | zvecr <git@zvecr.com> | 2022-02-25 23:45:40 +0000 |
---|---|---|
committer | zvecr <git@zvecr.com> | 2022-02-25 23:45:40 +0000 |
commit | e7931289918221081cbe2a7ea5df27a5d86324db (patch) | |
tree | 0b06145520f8aaf5ff5cb928aa5176fc2dd23619 /builddefs/build_layout.mk | |
parent | c0ee3d2c79388187883b1b1b1d1a0b6842acf741 (diff) | |
parent | cf31355f08dca311a013168eb3eb995e2fc6a3d1 (diff) | |
download | qmk_firmware-e7931289918221081cbe2a7ea5df27a5d86324db.tar.gz qmk_firmware-e7931289918221081cbe2a7ea5df27a5d86324db.zip |
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))) |