forked from mirror/qmk_firmware
Refactor Makefile logic for locating keymaps (#25808)
This commit is contained in:
34
Makefile
34
Makefile
@@ -190,41 +190,9 @@ endef
|
|||||||
# Parses a rule in the format <keymap>:<target>
|
# Parses a rule in the format <keymap>:<target>
|
||||||
# the keyboard is already known when entering this function
|
# the keyboard is already known when entering this function
|
||||||
define PARSE_KEYBOARD
|
define PARSE_KEYBOARD
|
||||||
# If we want to compile the default subproject, then we need to
|
|
||||||
# include the correct makefile to determine the actual name of it
|
|
||||||
CURRENT_KB := $1
|
CURRENT_KB := $1
|
||||||
|
|
||||||
# 5/4/3/2/1
|
KEYMAPS := $(shell $(QMK_BIN) list-keymaps --keyboard $1)
|
||||||
KEYBOARD_FOLDER_PATH_1 := $$(CURRENT_KB)
|
|
||||||
KEYBOARD_FOLDER_PATH_2 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_1)))
|
|
||||||
KEYBOARD_FOLDER_PATH_3 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_2)))
|
|
||||||
KEYBOARD_FOLDER_PATH_4 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_3)))
|
|
||||||
KEYBOARD_FOLDER_PATH_5 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_4)))
|
|
||||||
|
|
||||||
KEYMAPS :=
|
|
||||||
# get a list of all keymaps
|
|
||||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/keymaps/*/.)))
|
|
||||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/keymaps/*/.)))
|
|
||||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.)))
|
|
||||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
|
|
||||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
|
|
||||||
|
|
||||||
ifneq ($(QMK_USERSPACE),)
|
|
||||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/keymaps/*/.)))
|
|
||||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/keymaps/*/.)))
|
|
||||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.)))
|
|
||||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
|
|
||||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
|
|
||||||
endif
|
|
||||||
|
|
||||||
KEYBOARD_LAYOUTS := $(shell $(QMK_BIN) list-layouts --keyboard $1)
|
|
||||||
LAYOUT_KEYMAPS :=
|
|
||||||
$$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.)))))
|
|
||||||
ifneq ($(QMK_USERSPACE),)
|
|
||||||
$$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/layouts/$$(LAYOUT)/*/.)))))
|
|
||||||
endif
|
|
||||||
|
|
||||||
KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS))
|
|
||||||
|
|
||||||
# if the rule after removing the start of it is empty (we haven't specified a kemap or target)
|
# if the rule after removing the start of it is empty (we haven't specified a kemap or target)
|
||||||
# compile all the keymaps
|
# compile all the keymaps
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
# Look for a json keymap file
|
|
||||||
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.json)","")
|
|
||||||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_5)/keymap.json
|
|
||||||
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_5)
|
|
||||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.json)","")
|
|
||||||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_4)/keymap.json
|
|
||||||
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_4)
|
|
||||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.json)","")
|
|
||||||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_3)/keymap.json
|
|
||||||
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_3)
|
|
||||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.json)","")
|
|
||||||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_2)/keymap.json
|
|
||||||
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_2)
|
|
||||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","")
|
|
||||||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_1)/keymap.json
|
|
||||||
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_1)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(QMK_USERSPACE),)
|
|
||||||
ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json)","")
|
|
||||||
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json
|
|
||||||
KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)
|
|
||||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json)","")
|
|
||||||
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json
|
|
||||||
KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)
|
|
||||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json)","")
|
|
||||||
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json
|
|
||||||
KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)
|
|
||||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json)","")
|
|
||||||
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json
|
|
||||||
KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)
|
|
||||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json)","")
|
|
||||||
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json
|
|
||||||
KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
@@ -138,75 +138,12 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","")
|
|||||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json
|
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json
|
||||||
endif
|
endif
|
||||||
|
|
||||||
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
|
|
||||||
MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
|
|
||||||
MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
|
|
||||||
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
|
|
||||||
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
|
|
||||||
|
|
||||||
# Pull in rules from DD keyboard config
|
# Pull in rules from DD keyboard config
|
||||||
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_rules.mk)
|
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_rules.mk)
|
||||||
include $(INFO_RULES_MK)
|
include $(INFO_RULES_MK)
|
||||||
|
|
||||||
# Check for keymap.json first, so we can regenerate keymap.c
|
include $(BUILDDEFS_PATH)/locate_keymap.mk
|
||||||
include $(BUILDDEFS_PATH)/build_json.mk
|
-include $(KEYMAP_PATH)/rules.mk
|
||||||
|
|
||||||
# Pull in keymap level rules.mk
|
|
||||||
ifeq ("$(wildcard $(KEYMAP_PATH))", "")
|
|
||||||
# Look through the possible keymap folders until we find a matching keymap.c
|
|
||||||
ifneq ($(QMK_USERSPACE),)
|
|
||||||
ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.c)","")
|
|
||||||
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/rules.mk
|
|
||||||
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.c
|
|
||||||
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)
|
|
||||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.c)","")
|
|
||||||
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/rules.mk
|
|
||||||
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.c
|
|
||||||
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)
|
|
||||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.c)","")
|
|
||||||
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/rules.mk
|
|
||||||
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.c
|
|
||||||
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)
|
|
||||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.c)","")
|
|
||||||
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/rules.mk
|
|
||||||
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.c
|
|
||||||
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)
|
|
||||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.c)","")
|
|
||||||
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/rules.mk
|
|
||||||
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.c
|
|
||||||
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifeq ($(KEYMAP_PATH),)
|
|
||||||
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
|
|
||||||
-include $(MAIN_KEYMAP_PATH_1)/rules.mk
|
|
||||||
KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
|
|
||||||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
|
|
||||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
|
|
||||||
-include $(MAIN_KEYMAP_PATH_2)/rules.mk
|
|
||||||
KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
|
|
||||||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
|
|
||||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
|
|
||||||
-include $(MAIN_KEYMAP_PATH_3)/rules.mk
|
|
||||||
KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
|
|
||||||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
|
|
||||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
|
|
||||||
-include $(MAIN_KEYMAP_PATH_4)/rules.mk
|
|
||||||
KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
|
|
||||||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
|
|
||||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
|
|
||||||
-include $(MAIN_KEYMAP_PATH_5)/rules.mk
|
|
||||||
KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
|
|
||||||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
|
|
||||||
else ifneq ($(LAYOUTS),)
|
|
||||||
# If we haven't found a keymap yet fall back to community layouts
|
|
||||||
include $(BUILDDEFS_PATH)/build_layout.mk
|
|
||||||
else ifeq ("$(wildcard $(KEYMAP_JSON_PATH))", "") # Not finding keymap.c is fine if we found a keymap.json
|
|
||||||
$(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap)
|
|
||||||
# this state should never be reached
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Have we found a keymap.json?
|
# Have we found a keymap.json?
|
||||||
ifneq ("$(wildcard $(KEYMAP_JSON))", "")
|
ifneq ("$(wildcard $(KEYMAP_JSON))", "")
|
||||||
@@ -217,16 +154,9 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "")
|
|||||||
OPT_DEFS += -DOTHER_KEYMAP_C=\"$(OTHER_KEYMAP_C)\"
|
OPT_DEFS += -DOTHER_KEYMAP_C=\"$(OTHER_KEYMAP_C)\"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
KEYMAP_PATH := $(KEYMAP_JSON_PATH)
|
|
||||||
|
|
||||||
KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c
|
KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c
|
||||||
KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h
|
KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h
|
||||||
|
|
||||||
ifeq ($(OTHER_KEYMAP_C),)
|
|
||||||
# Load the keymap-level rules.mk if exists (and we havent already loaded it for keymap.c)
|
|
||||||
-include $(KEYMAP_PATH)/rules.mk
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Load any rules.mk content from keymap.json
|
# Load any rules.mk content from keymap.json
|
||||||
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/rules.mk $(KEYMAP_JSON))
|
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/rules.mk $(KEYMAP_JSON))
|
||||||
include $(INFO_RULES_MK)
|
include $(INFO_RULES_MK)
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
LAYOUTS_PATH := layouts
|
|
||||||
LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/))))
|
|
||||||
|
|
||||||
ifneq ($(QMK_USERSPACE),)
|
|
||||||
LAYOUTS_REPOS += $(patsubst %/,%,$(QMK_USERSPACE)/$(LAYOUTS_PATH))
|
|
||||||
endif
|
|
||||||
|
|
||||||
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))","")
|
|
||||||
KEYMAP_JSON := $$(LAYOUT_KEYMAP_JSON)
|
|
||||||
KEYMAP_JSON_PATH := $$(LAYOUT_KEYMAP_PATH)
|
|
||||||
endif
|
|
||||||
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)))
|
|
||||||
64
builddefs/locate_keymap.mk
Normal file
64
builddefs/locate_keymap.mk
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
|
||||||
|
MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
|
||||||
|
MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
|
||||||
|
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
|
||||||
|
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
|
||||||
|
|
||||||
|
POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_1)
|
||||||
|
POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_2)
|
||||||
|
POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_3)
|
||||||
|
POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_4)
|
||||||
|
POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_5)
|
||||||
|
|
||||||
|
ifneq ($(QMK_USERSPACE),)
|
||||||
|
POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)
|
||||||
|
POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)
|
||||||
|
POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)
|
||||||
|
POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)
|
||||||
|
POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)
|
||||||
|
endif
|
||||||
|
|
||||||
|
define SEARCH_POTENTIAL_LOCATION
|
||||||
|
POTENTIAL_DIR := $1
|
||||||
|
ifeq ("$$(wildcard $$(KEYMAP_PATH))", "")
|
||||||
|
POTENTIAL_KEYMAP_JSON := $$(POTENTIAL_DIR)/keymap.json
|
||||||
|
POTENTIAL_KEYMAP_C := $$(POTENTIAL_DIR)/keymap.c
|
||||||
|
ifneq ("$$(wildcard $$(POTENTIAL_KEYMAP_JSON))","")
|
||||||
|
KEYMAP_JSON := $$(POTENTIAL_KEYMAP_JSON)
|
||||||
|
KEYMAP_PATH := $$(POTENTIAL_DIR)
|
||||||
|
endif
|
||||||
|
ifneq ("$$(wildcard $$(POTENTIAL_KEYMAP_C))","")
|
||||||
|
KEYMAP_C := $$(POTENTIAL_KEYMAP_C)
|
||||||
|
KEYMAP_PATH := $$(POTENTIAL_DIR)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(foreach KM_DIR,$(POTENTIAL_KEYMAP_PATHS),$(eval $(call SEARCH_POTENTIAL_LOCATION, $(KM_DIR))))
|
||||||
|
|
||||||
|
LAYOUTS_PATH := layouts
|
||||||
|
LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/))))
|
||||||
|
|
||||||
|
ifneq ($(QMK_USERSPACE),)
|
||||||
|
LAYOUTS_REPOS += $(patsubst %/,%,$(QMK_USERSPACE)/$(LAYOUTS_PATH))
|
||||||
|
endif
|
||||||
|
|
||||||
|
define SEARCH_LAYOUTS
|
||||||
|
$$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_POTENTIAL_LOCATION,$$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP))))
|
||||||
|
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)))
|
||||||
|
|
||||||
|
ifeq ("$$(wildcard $$(KEYMAP_PATH))", "")
|
||||||
|
$(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap)
|
||||||
|
# this state should never be reached
|
||||||
|
endif
|
||||||
Reference in New Issue
Block a user