diff options
author | Joel Challis <git@zvecr.com> | 2022-04-03 18:22:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-03 18:22:52 +0100 |
commit | 1660b2d2e25f5c43306a043c372255d0f66bb925 (patch) | |
tree | 6138d28ccd52c1b4041ec66ec11e873078b18c21 /builddefs | |
parent | e6a7e7ac8e81bbfc49489d584c8afc60dae696ce (diff) | |
download | qmk_firmware-1660b2d2e25f5c43306a043c372255d0f66bb925.tar.gz qmk_firmware-1660b2d2e25f5c43306a043c372255d0f66bb925.zip |
Refactor CTPC logic to allow future converters (#16621)
* Refactor CTPC logic to allow future converters
* Update builddefs/converters.mk
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
Diffstat (limited to 'builddefs')
-rw-r--r-- | builddefs/build_keyboard.mk | 8 | ||||
-rw-r--r-- | builddefs/converters.mk | 26 |
2 files changed, 27 insertions, 7 deletions
diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index 44acd964cc..4503f018a8 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -172,13 +172,7 @@ generated-files: $(KEYMAP_OUTPUT)/src/config.h $(KEYMAP_OUTPUT)/src/keymap.c endif -ifeq ($(strip $(CTPC)), yes) - CONVERT_TO_PROTON_C=yes -endif - -ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes) - include platforms/chibios/boards/QMK_PROTON_C/convert_to_proton_c.mk -endif +include $(BUILDDEFS_PATH)/converters.mk include $(BUILDDEFS_PATH)/mcu_selection.mk diff --git a/builddefs/converters.mk b/builddefs/converters.mk new file mode 100644 index 0000000000..1b029e7225 --- /dev/null +++ b/builddefs/converters.mk @@ -0,0 +1,26 @@ +ifeq ($(strip $(CTPC)), yes) + CONVERT_TO_PROTON_C=yes +endif +ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes) + CONVERT_TO=proton_c +endif + +# TODO: opt in rather than assume everything uses a pro micro +PIN_COMPATIBLE ?= promicro +ifneq ($(CONVERT_TO),) + # glob to search each platfrorm and/or check for valid converter + CONVERTER := $(wildcard $(PLATFORM_PATH)/*/converters/$(PIN_COMPATIBLE)_to_$(CONVERT_TO)/) + ifeq ($(CONVERTER),) + $(call CATASTROPHIC_ERROR,Converting from '$(PIN_COMPATIBLE)' to '$(CONVERT_TO)' not possible!) + endif + + TARGET := $(TARGET)_$(CONVERT_TO) + + # Configure any defaults + OPT_DEFS += -DCONVERT_TO_$(strip $(shell echo $(CONVERT_TO) | tr '[:lower:]' '[:upper:]')) + OPT_DEFS += -DCONVERTER_ENABLED + VPATH += $(CONVERTER) + + # Finally run any converter specific logic + include $(CONVERTER)/converter.mk +endif |