* Add config.h and rules.mk support for data driven keymaps * tidy up after rebase * Rename key as it can contain more than just keyboard overrides * tidy up after rebase * Add validation
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
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
 | 
						|
        $(error Forced layout does not exist)
 | 
						|
    endif
 | 
						|
endif
 | 
						|
 | 
						|
$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))
 |