You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.3 KiB
36 lines
1.3 KiB
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_C := $(KEYBOARD_OUTPUT)/src/keymap.c |
|
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))) |
|
|
|
# Use rule from build_json.mk, but update prerequisite in case KEYMAP_JSON was updated |
|
$(KEYBOARD_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
|
|
|