mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-25 10:44:59 +06:00
Infer more when building features (#13890)
This commit is contained in:
parent
bb80b2a40c
commit
bd2f8ab88a
@ -399,6 +399,7 @@ VPATH += $(KEYBOARD_PATHS)
|
|||||||
VPATH += $(COMMON_VPATH)
|
VPATH += $(COMMON_VPATH)
|
||||||
|
|
||||||
include common_features.mk
|
include common_features.mk
|
||||||
|
include generic_features.mk
|
||||||
include $(TMK_PATH)/protocol.mk
|
include $(TMK_PATH)/protocol.mk
|
||||||
include $(TMK_PATH)/common.mk
|
include $(TMK_PATH)/common.mk
|
||||||
include bootloader.mk
|
include bootloader.mk
|
||||||
|
@ -52,6 +52,7 @@ include tests/$(TEST)/rules.mk
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
include common_features.mk
|
include common_features.mk
|
||||||
|
include generic_features.mk
|
||||||
include $(TMK_PATH)/common.mk
|
include $(TMK_PATH)/common.mk
|
||||||
include $(QUANTUM_PATH)/debounce/tests/rules.mk
|
include $(QUANTUM_PATH)/debounce/tests/rules.mk
|
||||||
include $(QUANTUM_PATH)/sequencer/tests/rules.mk
|
include $(QUANTUM_PATH)/sequencer/tests/rules.mk
|
||||||
|
@ -44,11 +44,6 @@ else ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), api)
|
|||||||
OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
|
OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(COMMAND_ENABLE)), yes)
|
|
||||||
SRC += $(QUANTUM_DIR)/command.c
|
|
||||||
OPT_DEFS += -DCOMMAND_ENABLE
|
|
||||||
endif
|
|
||||||
|
|
||||||
AUDIO_ENABLE ?= no
|
AUDIO_ENABLE ?= no
|
||||||
ifeq ($(strip $(AUDIO_ENABLE)), yes)
|
ifeq ($(strip $(AUDIO_ENABLE)), yes)
|
||||||
ifeq ($(PLATFORM),CHIBIOS)
|
ifeq ($(PLATFORM),CHIBIOS)
|
||||||
@ -118,12 +113,6 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
|
|||||||
SRC += $(QUANTUM_DIR)/pointing_device.c
|
SRC += $(QUANTUM_DIR)/pointing_device.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(PROGRAMMABLE_BUTTON_ENABLE)), yes)
|
|
||||||
OPT_DEFS += -DPROGRAMMABLE_BUTTON_ENABLE
|
|
||||||
SRC += $(QUANTUM_DIR)/programmable_button.c
|
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_programmable_button.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi
|
VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi
|
||||||
EEPROM_DRIVER ?= vendor
|
EEPROM_DRIVER ?= vendor
|
||||||
ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
|
ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
|
||||||
@ -419,21 +408,6 @@ ifeq ($(strip $(TERMINAL_ENABLE)), yes)
|
|||||||
OPT_DEFS += -DUSER_PRINT
|
OPT_DEFS += -DUSER_PRINT
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(WPM_ENABLE)), yes)
|
|
||||||
SRC += $(QUANTUM_DIR)/wpm.c
|
|
||||||
OPT_DEFS += -DWPM_ENABLE
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(strip $(ENCODER_ENABLE)), yes)
|
|
||||||
SRC += $(QUANTUM_DIR)/encoder.c
|
|
||||||
OPT_DEFS += -DENCODER_ENABLE
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(strip $(VELOCIKEY_ENABLE)), yes)
|
|
||||||
OPT_DEFS += -DVELOCIKEY_ENABLE
|
|
||||||
SRC += $(QUANTUM_DIR)/velocikey.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(strip $(VIA_ENABLE)), yes)
|
ifeq ($(strip $(VIA_ENABLE)), yes)
|
||||||
DYNAMIC_KEYMAP_ENABLE := yes
|
DYNAMIC_KEYMAP_ENABLE := yes
|
||||||
RAW_ENABLE := yes
|
RAW_ENABLE := yes
|
||||||
@ -442,16 +416,6 @@ ifeq ($(strip $(VIA_ENABLE)), yes)
|
|||||||
OPT_DEFS += -DVIA_ENABLE
|
OPT_DEFS += -DVIA_ENABLE
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes)
|
|
||||||
OPT_DEFS += -DDYNAMIC_KEYMAP_ENABLE
|
|
||||||
SRC += $(QUANTUM_DIR)/dynamic_keymap.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
|
|
||||||
OPT_DEFS += -DDIP_SWITCH_ENABLE
|
|
||||||
SRC += $(QUANTUM_DIR)/dip_switch.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
VALID_MAGIC_TYPES := yes lite
|
VALID_MAGIC_TYPES := yes lite
|
||||||
BOOTMAGIC_ENABLE ?= no
|
BOOTMAGIC_ENABLE ?= no
|
||||||
ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)
|
ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)
|
||||||
@ -602,54 +566,12 @@ ifeq ($(strip $(UNICODE_COMMON)), yes)
|
|||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
|
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
SPACE_CADET_ENABLE ?= yes
|
|
||||||
ifeq ($(strip $(SPACE_CADET_ENABLE)), yes)
|
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_space_cadet.c
|
|
||||||
OPT_DEFS += -DSPACE_CADET_ENABLE
|
|
||||||
endif
|
|
||||||
|
|
||||||
MAGIC_ENABLE ?= yes
|
MAGIC_ENABLE ?= yes
|
||||||
ifeq ($(strip $(MAGIC_ENABLE)), yes)
|
ifeq ($(strip $(MAGIC_ENABLE)), yes)
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_magic.c
|
SRC += $(QUANTUM_DIR)/process_keycode/process_magic.c
|
||||||
OPT_DEFS += -DMAGIC_KEYCODE_ENABLE
|
OPT_DEFS += -DMAGIC_KEYCODE_ENABLE
|
||||||
endif
|
endif
|
||||||
|
|
||||||
GRAVE_ESC_ENABLE ?= yes
|
|
||||||
ifeq ($(strip $(GRAVE_ESC_ENABLE)), yes)
|
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_grave_esc.c
|
|
||||||
OPT_DEFS += -DGRAVE_ESC_ENABLE
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(strip $(DYNAMIC_MACRO_ENABLE)), yes)
|
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_dynamic_macro.c
|
|
||||||
OPT_DEFS += -DDYNAMIC_MACRO_ENABLE
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(strip $(COMBO_ENABLE)), yes)
|
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
|
|
||||||
OPT_DEFS += -DCOMBO_ENABLE
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(strip $(KEY_OVERRIDE_ENABLE)), yes)
|
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_key_override.c
|
|
||||||
OPT_DEFS += -DKEY_OVERRIDE_ENABLE
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
|
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
|
|
||||||
OPT_DEFS += -DTAP_DANCE_ENABLE
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(strip $(KEY_LOCK_ENABLE)), yes)
|
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_key_lock.c
|
|
||||||
OPT_DEFS += -DKEY_LOCK_ENABLE
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(strip $(LEADER_ENABLE)), yes)
|
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_leader.c
|
|
||||||
OPT_DEFS += -DLEADER_ENABLE
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
|
ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c
|
SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c
|
||||||
OPT_DEFS += -DAUTO_SHIFT_ENABLE
|
OPT_DEFS += -DAUTO_SHIFT_ENABLE
|
||||||
@ -678,11 +600,6 @@ ifeq ($(strip $(JOYSTICK_ENABLE)), yes)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
DIGITIZER_ENABLE ?= no
|
|
||||||
ifneq ($(strip $(DIGITIZER_ENABLE)), no)
|
|
||||||
SRC += $(QUANTUM_DIR)/digitizer.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
USBPD_ENABLE ?= no
|
USBPD_ENABLE ?= no
|
||||||
VALID_USBPD_DRIVER_TYPES = custom vendor
|
VALID_USBPD_DRIVER_TYPES = custom vendor
|
||||||
USBPD_DRIVER ?= vendor
|
USBPD_DRIVER ?= vendor
|
||||||
|
48
generic_features.mk
Normal file
48
generic_features.mk
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# Copyright 2021 QMK
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
SPACE_CADET_ENABLE ?= yes
|
||||||
|
GRAVE_ESC_ENABLE ?= yes
|
||||||
|
|
||||||
|
GENERIC_FEATURES = \
|
||||||
|
COMBO \
|
||||||
|
COMMAND \
|
||||||
|
DIGITIZER \
|
||||||
|
DIP_SWITCH \
|
||||||
|
DYNAMIC_KEYMAP \
|
||||||
|
DYNAMIC_MACRO \
|
||||||
|
ENCODER \
|
||||||
|
GRAVE_ESC \
|
||||||
|
KEY_LOCK \
|
||||||
|
KEY_OVERRIDE \
|
||||||
|
LEADER \
|
||||||
|
PROGRAMMABLE_BUTTON \
|
||||||
|
SPACE_CADET \
|
||||||
|
TAP_DANCE \
|
||||||
|
VELOCIKEY \
|
||||||
|
WPM \
|
||||||
|
|
||||||
|
define HANDLE_GENERIC_FEATURE
|
||||||
|
# $$(info "Processing: $1_ENABLE $2.c")
|
||||||
|
SRC += $$(wildcard $$(QUANTUM_DIR)/process_keycode/process_$2.c)
|
||||||
|
SRC += $$(wildcard $$(QUANTUM_DIR)/$2.c)
|
||||||
|
OPT_DEFS += -D$1_ENABLE
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(foreach F,$(GENERIC_FEATURES),\
|
||||||
|
$(if $(filter yes, $(strip $($(F)_ENABLE))),\
|
||||||
|
$(eval $(call HANDLE_GENERIC_FEATURE,$(F),$(shell echo $(F) | tr '[:upper:]' '[:lower:]'))) \
|
||||||
|
) \
|
||||||
|
)
|
Loading…
Reference in New Issue
Block a user