aboutsummaryrefslogtreecommitdiffstats
path: root/common_features.mk
diff options
context:
space:
mode:
authorGravatar Joel Challis <git@zvecr.com>2020-01-04 20:29:44 +0000
committerGravatar GitHub <noreply@github.com>2020-01-04 20:29:44 +0000
commitdcb7ca3f7910420cfa85ba659d48285b3633a978 (patch)
treed571ff362775734c533ed5b9d1982c62a609d20b /common_features.mk
parentc1feeaa57f28c781e39996e5d4eea3a31f083439 (diff)
downloadqmk_firmware-dcb7ca3f7910420cfa85ba659d48285b3633a978.tar.gz
Move some common matrix code to a common location (#7699)
* Move some common matrix code to a common location * Refactor some 'custom_matrix_helper' logic to use custom matrix lite * Fix build for kinesis/stapelberg - abuse of vpath was picking up matrix.c from core when custom matrix was enabled * Add validation for CUSTOM_MATRIX
Diffstat (limited to 'common_features.mk')
-rw-r--r--common_features.mk26
1 files changed, 21 insertions, 5 deletions
diff --git a/common_features.mk b/common_features.mk
index 92b24bb20..67c64b425 100644
--- a/common_features.mk
+++ b/common_features.mk
@@ -374,12 +374,28 @@ QUANTUM_SRC:= \
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c
-# Include the standard or split matrix code if needed
+
+
+VALID_CUSTOM_MATRIX_TYPES:= yes lite no
+
+CUSTOM_MATRIX ?= no
+
ifneq ($(strip $(CUSTOM_MATRIX)), yes)
- ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
- QUANTUM_SRC += $(QUANTUM_DIR)/split_common/matrix.c
- else
- QUANTUM_SRC += $(QUANTUM_DIR)/matrix.c
+ ifeq ($(filter $(CUSTOM_MATRIX),$(VALID_CUSTOM_MATRIX_TYPES)),)
+ $(error CUSTOM_MATRIX="$(CUSTOM_MATRIX)" is not a valid custom matrix type)
+ endif
+
+ # Include common stuff for all non custom matrix users
+ QUANTUM_SRC += $(QUANTUM_DIR)/matrix_common.c
+
+ # if 'lite' then skip the actual matrix implementation
+ ifneq ($(strip $(CUSTOM_MATRIX)), lite)
+ # Include the standard or split matrix code if needed
+ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
+ QUANTUM_SRC += $(QUANTUM_DIR)/split_common/matrix.c
+ else
+ QUANTUM_SRC += $(QUANTUM_DIR)/matrix.c
+ endif
endif
endif