浏览代码

Add a <FEATURE>_SUPPORTED flag (#9058)

* Initial attempt at allowing keyboards to indicate what features they do not support

* try to use a for loop instead

* Update disable_features.mk

Co-authored-by: Drashna Jaelre <drashna@live.com>

* add a few more features

* remove my test fixture

* disable things that make all:all suggested"

Co-authored-by: Zach White <skullydazed@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Zach White 4 年之前
父节点
当前提交
d02c4c5241
共有 45 个文件被更改,包括 211 次插入1 次删除
  1. 3 0
      build_keyboard.mk
  2. 31 0
      disable_features.mk
  3. 5 0
      keyboards/40percentclub/4x4/rules.mk
  4. 4 0
      keyboards/40percentclub/gherkin/rules.mk
  5. 3 0
      keyboards/40percentclub/nori/rules.mk
  6. 5 0
      keyboards/acheron/shark/rules.mk
  7. 4 0
      keyboards/amjkeyboard/amj66/rules.mk
  8. 5 0
      keyboards/boardsource/4x12/rules.mk
  9. 5 0
      keyboards/boardsource/5x12/rules.mk
  10. 5 0
      keyboards/chimera_ls/rules.mk
  11. 3 1
      keyboards/clueboard/66_hotswap/gen1/rules.mk
  12. 5 0
      keyboards/contra/rules.mk
  13. 3 0
      keyboards/crkbd/rev1/legacy/rules.mk
  14. 5 0
      keyboards/dm9records/plaid/rules.mk
  15. 5 0
      keyboards/dm9records/tartan/rules.mk
  16. 4 0
      keyboards/efreet/rules.mk
  17. 4 0
      keyboards/ergodox_ez/rules.mk
  18. 5 0
      keyboards/evyd13/eon40/rules.mk
  19. 5 0
      keyboards/evyd13/nt660/rules.mk
  20. 5 0
      keyboards/evyd13/pockettype/rules.mk
  21. 5 0
      keyboards/fractal/rules.mk
  22. 3 0
      keyboards/jj40/rules.mk
  23. 4 0
      keyboards/jnao/rules.mk
  24. 3 0
      keyboards/kbdfans/kbd4x/rules.mk
  25. 4 0
      keyboards/keebio/levinson/rev3/rules.mk
  26. 3 0
      keyboards/keebio/wavelet/rules.mk
  27. 4 0
      keyboards/lazydesigners/dimple/rules.mk
  28. 2 0
      keyboards/lets_split/rev2/rules.mk
  29. 3 0
      keyboards/lets_split/sockets/rules.mk
  30. 3 0
      keyboards/lets_split_eh/eh/rules.mk
  31. 4 0
      keyboards/mechstudio/ud_40_ortho/rules.mk
  32. 4 0
      keyboards/meira/promicro/rules.mk
  33. 4 0
      keyboards/montsinger/rebound/rev4/rules.mk
  34. 4 0
      keyboards/niu_mini/rules.mk
  35. 4 0
      keyboards/quark/rules.mk
  36. 4 0
      keyboards/redox/rules.mk
  37. 4 0
      keyboards/rgbkb/zygomorph/rules.mk
  38. 5 0
      keyboards/signum/3_0/elitec/rules.mk
  39. 5 0
      keyboards/spaceman/pancake/feather/rules.mk
  40. 5 0
      keyboards/spaceman/pancake/promicro/rules.mk
  41. 5 0
      keyboards/telophase/rules.mk
  42. 3 0
      keyboards/vitamins_included/rev2/rules.mk
  43. 4 0
      keyboards/zlant/rules.mk
  44. 4 0
      keyboards/zvecr/split_blackpill/rules.mk
  45. 4 0
      keyboards/zvecr/zv48/f401/rules.mk

+ 3 - 0
build_keyboard.mk

@@ -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!

+ 31 - 0
disable_features.mk

@@ -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)))

+ 5 - 0
keyboards/40percentclub/4x4/rules.mk

@@ -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

+ 4 - 0
keyboards/40percentclub/gherkin/rules.mk

@@ -26,3 +26,7 @@ AUDIO_ENABLE = no
 RGBLIGHT_ENABLE = no
 
 LAYOUTS = ortho_3x10
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no

+ 3 - 0
keyboards/40percentclub/nori/rules.mk

@@ -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

+ 5 - 0
keyboards/acheron/shark/rules.mk

@@ -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

+ 4 - 0
keyboards/amjkeyboard/amj66/rules.mk

@@ -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

+ 5 - 0
keyboards/boardsource/4x12/rules.mk

@@ -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

+ 5 - 0
keyboards/boardsource/5x12/rules.mk

@@ -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

+ 5 - 0
keyboards/chimera_ls/rules.mk

@@ -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

+ 3 - 1
keyboards/clueboard/66_hotswap/gen1/rules.mk

@@ -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

+ 5 - 0
keyboards/contra/rules.mk

@@ -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

+ 3 - 0
keyboards/crkbd/rev1/legacy/rules.mk

@@ -5,3 +5,6 @@ SRC += 	matrix.c \
 		split_scomm.c
 
 QUANTUM_LIB_SRC += i2c.c serial.c
+
+# Disable unsupported hardware
+BACKLIGHT_SUPPORTED = no

+ 5 - 0
keyboards/dm9records/plaid/rules.mk

@@ -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

+ 5 - 0
keyboards/dm9records/tartan/rules.mk

@@ -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

+ 4 - 0
keyboards/efreet/rules.mk

@@ -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

+ 4 - 0
keyboards/ergodox_ez/rules.mk

@@ -41,3 +41,7 @@ SRC += matrix.c \
 QUANTUM_LIB_SRC += i2c_master.c
 
 LAYOUTS = ergodox
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no

+ 5 - 0
keyboards/evyd13/eon40/rules.mk

@@ -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

+ 5 - 0
keyboards/evyd13/nt660/rules.mk

@@ -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

+ 5 - 0
keyboards/evyd13/pockettype/rules.mk

@@ -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

+ 5 - 0
keyboards/fractal/rules.mk

@@ -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

+ 3 - 0
keyboards/jj40/rules.mk

@@ -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

+ 4 - 0
keyboards/jnao/rules.mk

@@ -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

+ 3 - 0
keyboards/kbdfans/kbd4x/rules.mk

@@ -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

+ 4 - 0
keyboards/keebio/levinson/rev3/rules.mk

@@ -1 +1,5 @@
 BACKLIGHT_ENABLE = yes
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no

+ 3 - 0
keyboards/keebio/wavelet/rules.mk

@@ -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

+ 4 - 0
keyboards/lazydesigners/dimple/rules.mk

@@ -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

+ 2 - 0
keyboards/lets_split/rev2/rules.mk

@@ -0,0 +1,2 @@
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no

+ 3 - 0
keyboards/lets_split/sockets/rules.mk

@@ -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

+ 3 - 0
keyboards/lets_split_eh/eh/rules.mk

@@ -1,2 +1,5 @@
 BACKLIGHT_ENABLE = yes
 RGBLIGHT_ENABLE = yes
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no

+ 4 - 0
keyboards/mechstudio/ud_40_ortho/rules.mk

@@ -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

+ 4 - 0
keyboards/meira/promicro/rules.mk

@@ -1 +1,5 @@
 BLUETOOTH_ENABLE = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no

+ 4 - 0
keyboards/montsinger/rebound/rev4/rules.mk

@@ -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

+ 4 - 0
keyboards/niu_mini/rules.mk

@@ -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

+ 4 - 0
keyboards/quark/rules.mk

@@ -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

+ 4 - 0
keyboards/redox/rules.mk

@@ -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

+ 4 - 0
keyboards/rgbkb/zygomorph/rules.mk

@@ -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

+ 5 - 0
keyboards/signum/3_0/elitec/rules.mk

@@ -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

+ 5 - 0
keyboards/spaceman/pancake/feather/rules.mk

@@ -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

+ 5 - 0
keyboards/spaceman/pancake/promicro/rules.mk

@@ -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

+ 5 - 0
keyboards/telophase/rules.mk

@@ -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

+ 3 - 0
keyboards/vitamins_included/rev2/rules.mk

@@ -9,3 +9,6 @@
 BOOTLOADER = qmk-dfu
 
 SPLIT_KEYBOARD = yes
+
+# Disable unsupported hardware
+BACKLIGHT_SUPPORTED = no

+ 4 - 0
keyboards/zlant/rules.mk

@@ -26,3 +26,7 @@ AUDIO_ENABLE = no
 RGBLIGHT_ENABLE = yes
 
 LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no

+ 4 - 0
keyboards/zvecr/split_blackpill/rules.mk

@@ -28,3 +28,7 @@ SERIAL_DRIVER = usart
 WS2812_DRIVER = pwm
 
 LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no

+ 4 - 0
keyboards/zvecr/zv48/f401/rules.mk

@@ -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