M build_keyboard.mk => build_keyboard.mk +3 -0
@@ 283,6 283,9 @@ ifneq ("$(wildcard $(USER_PATH)/config.h)","")
CONFIG_H += $(USER_PATH)/config.h
endif
+# Disable features that a keyboard doesn't support
+-include disable_features.mk
+
# Object files directory
# To put object files in current directory, use a dot (.), do NOT make
# this an empty or blank macro!
A disable_features.mk => disable_features.mk +31 -0
@@ 0,0 1,31 @@
+# Unconditionally disable features that a keyboard advertises it doesn't support
+
+FEATURE_NAMES :=
+FEATURE_NAMES += ADAFRUIT_BLE
+FEATURE_NAMES += AUDIO
+FEATURE_NAMES += BACKLIGHT
+FEATURE_NAMES += BLUETOOTH
+FEATURE_NAMES += DIP_SWITCH
+FEATURE_NAMES += DYNAMIC_KEYMAP
+FEATURE_NAMES += ENCODER
+FEATURE_NAMES += HAPTIC
+FEATURE_NAMES += HD44780
+FEATURE_NAMES += IOS_DEVICE
+FEATURE_NAMES += LCD_BACKLIGHT
+FEATURE_NAMES += LCD
+FEATURE_NAMES += OLED
+FEATURE_NAMES += POINTING_DEVICE
+FEATURE_NAMES += PRINTING
+FEATURE_NAMES += PS2_MOUSE
+FEATURE_NAMES += RGBLIGHT
+FEATURE_NAMES += RGB_MATRIX
+FEATURE_NAMES += SLEEP_LED
+FEATURE_NAMES += SERIAL_LINK
+FEATURE_NAMES += STENO
+FEATURE_NAMES += SWAP_HANDS
+FEATURE_NAMES += VISUALIZER
+FEATURE_NAMES += WATCHDOG
+FEATURE_NAMES += XT
+
+$(foreach AFEATURE,$(FEATURE_NAMES),\
+ $(if $(filter $($(AFEATURE)_SUPPORTED),no),$(eval $(AFEATURE)_ENABLE=no)))
M keyboards/40percentclub/4x4/rules.mk => keyboards/40percentclub/4x4/rules.mk +5 -0
@@ 31,3 31,8 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12 ortho_4x16
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/40percentclub/gherkin/rules.mk => keyboards/40percentclub/gherkin/rules.mk +4 -0
@@ 26,3 26,7 @@ AUDIO_ENABLE = no
RGBLIGHT_ENABLE = no
LAYOUTS = ortho_3x10
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
M keyboards/40percentclub/nori/rules.mk => keyboards/40percentclub/nori/rules.mk +3 -0
@@ 32,3 32,6 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
M keyboards/acheron/shark/rules.mk => keyboards/acheron/shark/rules.mk +5 -0
@@ 22,3 22,8 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/amjkeyboard/amj66/rules.mk => keyboards/amjkeyboard/amj66/rules.mk +4 -0
@@ 31,3 31,7 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = 66_ansi 66_iso
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
M keyboards/boardsource/4x12/rules.mk => keyboards/boardsource/4x12/rules.mk +5 -0
@@ 30,3 30,8 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/boardsource/5x12/rules.mk => keyboards/boardsource/5x12/rules.mk +5 -0
@@ 31,3 31,8 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_5x12
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/chimera_ls/rules.mk => keyboards/chimera_ls/rules.mk +5 -0
@@ 38,3 38,8 @@ CHIMERA_LS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
SRC = matrix.c
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/clueboard/66_hotswap/gen1/rules.mk => keyboards/clueboard/66_hotswap/gen1/rules.mk +3 -1
@@ 18,4 18,6 @@ NKRO_ENABLE = yes # USB Nkey Rollover
AUDIO_ENABLE = yes
# SERIAL_LINK_ENABLE = yes
-LAYOUTS = 66_ansi
+# project specific files
+SRC = led.c
+LAYOUTS += 66_ansi
M keyboards/contra/rules.mk => keyboards/contra/rules.mk +5 -0
@@ 29,3 29,8 @@ AUDIO_ENABLE = no # Audio output on port C6
LAYOUTS = planck_mit ortho_4x12
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/crkbd/rev1/legacy/rules.mk => keyboards/crkbd/rev1/legacy/rules.mk +3 -0
@@ 5,3 5,6 @@ SRC += matrix.c \
split_scomm.c
QUANTUM_LIB_SRC += i2c.c serial.c
+
+# Disable unsupported hardware
+BACKLIGHT_SUPPORTED = no
M keyboards/dm9records/plaid/rules.mk => keyboards/dm9records/plaid/rules.mk +5 -0
@@ 33,3 33,8 @@ FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x12 planck_mit
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/dm9records/tartan/rules.mk => keyboards/dm9records/tartan/rules.mk +5 -0
@@ 33,3 33,8 @@ FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_iso 60_iso_split_bs_rshift
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/efreet/rules.mk => keyboards/efreet/rules.mk +4 -0
@@ 22,3 22,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
M keyboards/ergodox_ez/rules.mk => keyboards/ergodox_ez/rules.mk +4 -0
@@ 41,3 41,7 @@ SRC += matrix.c \
QUANTUM_LIB_SRC += i2c_master.c
LAYOUTS = ergodox
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/evyd13/eon40/rules.mk => keyboards/evyd13/eon40/rules.mk +5 -0
@@ 34,3 34,8 @@ ENCODER_ENABLE = yes
LAYOUTS = ortho_4x12 planck_mit
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/evyd13/nt660/rules.mk => keyboards/evyd13/nt660/rules.mk +5 -0
@@ 31,3 31,8 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = 66_ansi 66_iso
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/evyd13/pockettype/rules.mk => keyboards/evyd13/pockettype/rules.mk +5 -0
@@ 29,3 29,8 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/fractal/rules.mk => keyboards/fractal/rules.mk +5 -0
@@ 29,3 29,8 @@ AUDIO_ENABLE = no # Audio output on port C6
LAYOUTS = ortho_5x12 # preonic_mit
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/jj40/rules.mk => keyboards/jj40/rules.mk +3 -0
@@ 33,3 33,6 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
M keyboards/jnao/rules.mk => keyboards/jnao/rules.mk +4 -0
@@ 33,3 33,7 @@ FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_5x12 ortho_4x12
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
M keyboards/kbdfans/kbd4x/rules.mk => keyboards/kbdfans/kbd4x/rules.mk +3 -0
@@ 32,3 32,6 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
M keyboards/keebio/levinson/rev3/rules.mk => keyboards/keebio/levinson/rev3/rules.mk +4 -0
@@ 1,1 1,5 @@
BACKLIGHT_ENABLE = yes
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
M keyboards/keebio/wavelet/rules.mk => keyboards/keebio/wavelet/rules.mk +3 -0
@@ 32,3 32,6 @@ RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
M keyboards/lazydesigners/dimple/rules.mk => keyboards/lazydesigners/dimple/rules.mk +4 -0
@@ 20,3 20,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/lets_split/rev2/rules.mk => keyboards/lets_split/rev2/rules.mk +2 -0
@@ 0,0 1,2 @@
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
M keyboards/lets_split/sockets/rules.mk => keyboards/lets_split/sockets/rules.mk +3 -0
@@ 3,3 3,6 @@ AUDIO_ENABLE = yes
RGBLIGHT_ENABLE = yes #Don't enable this along with I2C
LTO_ENABLE = yes
+
+# Disable unsupported hardware
+BACKLIGHT_SUPPORTED = no
M keyboards/lets_split_eh/eh/rules.mk => keyboards/lets_split_eh/eh/rules.mk +3 -0
@@ 1,2 1,5 @@
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
M keyboards/mechstudio/ud_40_ortho/rules.mk => keyboards/mechstudio/ud_40_ortho/rules.mk +4 -0
@@ 22,3 22,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/meira/promicro/rules.mk => keyboards/meira/promicro/rules.mk +4 -0
@@ 1,1 1,5 @@
BLUETOOTH_ENABLE = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
M keyboards/montsinger/rebound/rev4/rules.mk => keyboards/montsinger/rebound/rev4/rules.mk +4 -0
@@ 31,3 31,7 @@ ENCODER_ENABLE = yes
LAYOUTS = ortho_4x12
LAYOUTS_HAS_RGB = no
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/niu_mini/rules.mk => keyboards/niu_mini/rules.mk +4 -0
@@ 34,3 34,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
LAYOUTS = ortho_4x12 planck_mit
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/quark/rules.mk => keyboards/quark/rules.mk +4 -0
@@ 23,3 23,7 @@ AUDIO_ENABLE = no # Audio output
UNICODE_ENABLE = yes # Unicode
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/redox/rules.mk => keyboards/redox/rules.mk +4 -0
@@ 34,3 34,7 @@ RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SPLIT_KEYBOARD = yes
DEFAULT_FOLDER = redox/rev1
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/rgbkb/zygomorph/rules.mk => keyboards/rgbkb/zygomorph/rules.mk +4 -0
@@ 36,3 36,7 @@ SPLIT_KEYBOARD = yes
LAYOUTS = ortho_4x12 ortho_5x12
DEFAULT_FOLDER = rgbkb/zygomorph/rev1
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/signum/3_0/elitec/rules.mk => keyboards/signum/3_0/elitec/rules.mk +5 -0
@@ 28,3 28,8 @@ RGBLIGHT_ENABLE = no
UNICODEMAP_ENABLE = no
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/spaceman/pancake/feather/rules.mk => keyboards/spaceman/pancake/feather/rules.mk +5 -0
@@ 30,3 30,8 @@ AUDIO_ENABLE = no # This can be enabled if a speaker is connected to the expans
RGBLIGHT_ENABLE = no # This can be enabled if a ws2812 strip is connected to the expansion port.
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/spaceman/pancake/promicro/rules.mk => keyboards/spaceman/pancake/promicro/rules.mk +5 -0
@@ 26,3 26,8 @@ AUDIO_ENABLE = no # This can be enabled if a speaker is connected to the expans
RGBLIGHT_ENABLE = no # This can be enabled if a ws2812 strip is connected to the expansion port.
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/telophase/rules.mk => keyboards/telophase/rules.mk +5 -0
@@ 39,3 39,8 @@ MITOSIS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
# # project specific files
SRC = matrix.c
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/vitamins_included/rev2/rules.mk => keyboards/vitamins_included/rev2/rules.mk +3 -0
@@ 9,3 9,6 @@
BOOTLOADER = qmk-dfu
SPLIT_KEYBOARD = yes
+
+# Disable unsupported hardware
+BACKLIGHT_SUPPORTED = no
M keyboards/zlant/rules.mk => keyboards/zlant/rules.mk +4 -0
@@ 26,3 26,7 @@ AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/zvecr/split_blackpill/rules.mk => keyboards/zvecr/split_blackpill/rules.mk +4 -0
@@ 28,3 28,7 @@ SERIAL_DRIVER = usart
WS2812_DRIVER = pwm
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
M keyboards/zvecr/zv48/f401/rules.mk => keyboards/zvecr/zv48/f401/rules.mk +4 -0
@@ 3,3 3,7 @@ MCU = STM32F401
# Address of the bootloader in system memory
STM32_BOOTLOADER_ADDRESS = 0x1FFF0000
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no