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.

32 lines
1.1 KiB

  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. LAYOUT_KEYMAP_JSON := $$(LAYOUT_KEYMAP_PATH)/keymap.json
  6. LAYOUT_KEYMAP_C := $$(LAYOUT_KEYMAP_PATH)/keymap.c
  7. ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_JSON))","")
  8. -include $$(LAYOUT_KEYMAP_PATH)/rules.mk
  9. KEYMAP_JSON := $$(LAYOUT_KEYMAP_JSON)
  10. KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
  11. else ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","")
  12. -include $$(LAYOUT_KEYMAP_PATH)/rules.mk
  13. KEYMAP_C := $$(LAYOUT_KEYMAP_C)
  14. KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
  15. endif
  16. endef
  17. define SEARCH_LAYOUTS
  18. $$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_LAYOUTS_REPO)))
  19. endef
  20. ifneq ($(FORCE_LAYOUT),)
  21. ifneq (,$(findstring $(FORCE_LAYOUT),$(LAYOUTS)))
  22. $(info Forcing layout: $(FORCE_LAYOUT))
  23. LAYOUTS := $(FORCE_LAYOUT)
  24. else
  25. $(error Forced layout does not exist)
  26. endif
  27. endif
  28. $(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))