summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfauxpark <fauxpark@gmail.com>2019-09-21 17:00:58 +1000
committerDrashna Jaelre <drashna@live.com>2019-09-21 00:00:58 -0700
commit2df3799e3d3fe60ff6ed6159cd935d4356be70c3 (patch)
tree2dd9f65ac05ec68a27cc096d1d26151a4c39dcf4
parentea96c4b787f07d64a497700e07c2a842324fe4f5 (diff)
Add list-keymaps make target (#5563)0.7.21
-rw-r--r--Makefile13
-rw-r--r--message.mk5
2 files changed, 18 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 37f5f23dbe..508691f45f 100644
--- a/Makefile
+++ b/Makefile
@@ -371,6 +371,9 @@ define PARSE_KEYBOARD
# The same if all was specified
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
$$(eval $$(call PARSE_ALL_KEYMAPS))
+ # List all keymaps for the given keyboard
+ else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,list-keymaps),true)
+ $$(eval $$(call LIST_ALL_KEYMAPS))
# Try to match the specified keyamp with the list of known keymaps
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYMAPS)),true)
$$(eval $$(call PARSE_KEYMAP,$$(MATCHED_ITEM)))
@@ -407,6 +410,16 @@ endef
# endif
# endef
+# Prints a list of all known keymaps for the given keyboard
+define LIST_ALL_KEYMAPS
+ COMMAND_true_LIST_KEYMAPS := \
+ printf "$$(KEYMAPS)\n";
+ COMMAND_false_LIST_KEYMAPS := \
+ printf "$$(MSG_AVAILABLE_KEYMAPS)\n"; \
+ printf "$$(KEYMAPS)\n";
+ COMMANDS += LIST_KEYMAPS
+endef
+
# $1 Keymap
# This is the meat of compiling a keyboard, when entering this, everything is known
# keyboard, subproject, and keymap
diff --git a/message.mk b/message.mk
index dfbde2845b..53afba2065 100644
--- a/message.mk
+++ b/message.mk
@@ -76,6 +76,11 @@ define GENERATE_MSG_MAKE_TEST
endef
MSG_MAKE_TEST = $(eval $(call GENERATE_MSG_MAKE_TEST))$(MSG_MAKE_TEST_ACTUAL)
MSG_TEST = Testing $(BOLD)$(TEST_NAME)$(NO_COLOR)
+define GENERATE_MSG_AVAILABLE_KEYMAPS
+ MSG_AVAILABLE_KEYMAPS_ACTUAL := Available keymaps for $(BOLD)$$(CURRENT_KB)$(NO_COLOR):
+endef
+MSG_AVAILABLE_KEYMAPS = $(eval $(call GENERATE_MSG_AVAILABLE_KEYMAPS))$(MSG_AVAILABLE_KEYMAPS_ACTUAL)
+
MSG_CHECK_FILESIZE = Checking file size of $(TARGET).hex
MSG_FILE_TOO_BIG = $(ERROR_COLOR)The firmware is too large!$(NO_COLOR) $(CURRENT_SIZE)/$(MAX_SIZE) ($(OVER_SIZE) bytes over)\n
MSG_FILE_TOO_SMALL = The firmware is too small! $(CURRENT_SIZE)/$(MAX_SIZE)\n