build_layout.mk 882 B

12345678910111213141516171819202122
  1. LAYOUTS_PATH := layouts
  2. LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/))))
  3. define SEARCH_LAYOUTS_REPO
  4. LAYOUT_KEYMAP_PATH := $$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP)
  5. PARENT_LAYOUT_KEYMAP_PATH := $(patsubst %/,%,$(dir $(LAYOUT_KEYMAP_PATH)))
  6. LAYOUT_KEYMAP_C := $$(LAYOUT_KEYMAP_PATH)/keymap.c
  7. PARENT_LAYOUT_KEYMAP_C := $$(PARENT_LAYOUT_KEYMAP_PATH)/keymap.c
  8. ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","")
  9. KEYMAP_C := $$(LAYOUT_KEYMAP_C)
  10. KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
  11. else ifneq ("$$(wildcard $$(PARENT_LAYOUT_KEYMAP_C))","")
  12. KEYMAP_C := $$(PARENT_LAYOUT_KEYMAP_C)
  13. KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
  14. endif
  15. endef
  16. define SEARCH_LAYOUTS
  17. $$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_LAYOUTS_REPO)))
  18. endef
  19. $(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))