diff options
| author | Zach White <skullydazed@gmail.com> | 2021-01-09 20:18:47 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-09 20:18:47 -0800 |
| commit | eaa9106ec74591593e638ac015a5c90d17b30612 (patch) | |
| tree | 086c66b1ad3353c28a35489b6d17be32298b7bdd | |
| parent | 54a8262dfe3b3bf5e27024e1fdb18448bac53408 (diff) | |
| download | qmk_firmware-eaa9106ec74591593e638ac015a5c90d17b30612.tar.gz qmk_firmware-eaa9106ec74591593e638ac015a5c90d17b30612.zip | |
Add support for specifying BOARD in info.json (#11492)
* add support for specifying BOARD in info.json
* move BOARD from rules.mk to info.json for clueboard
* fix keyboards that do not require board
* remove out of compliance values
| -rw-r--r-- | data/schemas/keyboard.jsonschema | 5 | ||||
| -rw-r--r-- | keyboards/clueboard/60/info.json | 1 | ||||
| -rw-r--r-- | keyboards/clueboard/60/rules.mk | 2 | ||||
| -rw-r--r-- | keyboards/clueboard/66/rev4/info.json | 1 | ||||
| -rw-r--r-- | keyboards/clueboard/66/rev4/rules.mk | 1 | ||||
| -rw-r--r-- | keyboards/clueboard/66_hotswap/gen1/info.json | 1 | ||||
| -rw-r--r-- | keyboards/clueboard/66_hotswap/gen1/rules.mk | 1 | ||||
| -rw-r--r-- | keyboards/clueboard/california/info.json | 1 | ||||
| -rw-r--r-- | keyboards/clueboard/california/rules.mk | 1 | ||||
| -rw-r--r-- | keyboards/cmm_studio/saka68/info.json | 2 | ||||
| -rwxr-xr-x | lib/python/qmk/cli/generate/rules_mk.py | 4 | ||||
| -rw-r--r-- | lib/python/qmk/info.py | 8 |
12 files changed, 19 insertions, 9 deletions
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index f76c7fd18..0b3d6f393 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema | |||
| @@ -27,6 +27,11 @@ | |||
| 27 | "type": "string", | 27 | "type": "string", |
| 28 | "enum": ["MK20DX128", "MK20DX256", "MKL26Z64", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F411", "at90usb1286", "at90usb646", "atmega16u2", "atmega328p", "atmega32a", "atmega32u2", "atmega32u4", "attiny85", "cortex-m4", "unknown"] | 28 | "enum": ["MK20DX128", "MK20DX256", "MKL26Z64", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F411", "at90usb1286", "at90usb646", "atmega16u2", "atmega328p", "atmega32a", "atmega32u2", "atmega32u4", "attiny85", "cortex-m4", "unknown"] |
| 29 | }, | 29 | }, |
| 30 | "board": { | ||
| 31 | "type": "string", | ||
| 32 | "minLength": 2, | ||
| 33 | "pattern": "^[a-zA-Z_][0-9a-zA-Z_]*$" | ||
| 34 | }, | ||
| 30 | "bootloader": { | 35 | "bootloader": { |
| 31 | "type": "string", | 36 | "type": "string", |
| 32 | "enum": ["atmel-dfu", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "stm32-dfu", "stm32duino", "unknown", "USBasp"] | 37 | "enum": ["atmel-dfu", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "stm32-dfu", "stm32duino", "unknown", "USBasp"] |
diff --git a/keyboards/clueboard/60/info.json b/keyboards/clueboard/60/info.json index 2da993437..a68081daf 100644 --- a/keyboards/clueboard/60/info.json +++ b/keyboards/clueboard/60/info.json | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | "width": 15, | 6 | "width": 15, |
| 7 | "debounce": 6, | 7 | "debounce": 6, |
| 8 | "processor": "STM32F303", | 8 | "processor": "STM32F303", |
| 9 | "board": "QMK_PROTON_C", | ||
| 9 | "diode_direction": "COL2ROW", | 10 | "diode_direction": "COL2ROW", |
| 10 | "features": { | 11 | "features": { |
| 11 | "audio": true, | 12 | "audio": true, |
diff --git a/keyboards/clueboard/60/rules.mk b/keyboards/clueboard/60/rules.mk index 6bc7eb761..c73b4c473 100644 --- a/keyboards/clueboard/60/rules.mk +++ b/keyboards/clueboard/60/rules.mk | |||
| @@ -1,4 +1,2 @@ | |||
| 1 | BOARD = QMK_PROTON_C | ||
| 2 | |||
| 3 | # project specific files | 1 | # project specific files |
| 4 | SRC = led.c | 2 | SRC = led.c |
diff --git a/keyboards/clueboard/66/rev4/info.json b/keyboards/clueboard/66/rev4/info.json index aef1dee7a..9c8fcbef5 100644 --- a/keyboards/clueboard/66/rev4/info.json +++ b/keyboards/clueboard/66/rev4/info.json | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | "width": 16.5, | 6 | "width": 16.5, |
| 7 | "debounce": 5, | 7 | "debounce": 5, |
| 8 | "processor": "STM32F303", | 8 | "processor": "STM32F303", |
| 9 | "board": "QMK_PROTON_C", | ||
| 9 | "diode_direction": "COL2ROW", | 10 | "diode_direction": "COL2ROW", |
| 10 | "features": { | 11 | "features": { |
| 11 | "audio": true, | 12 | "audio": true, |
diff --git a/keyboards/clueboard/66/rev4/rules.mk b/keyboards/clueboard/66/rev4/rules.mk index 14a7fa7b7..6e7633bfe 100644 --- a/keyboards/clueboard/66/rev4/rules.mk +++ b/keyboards/clueboard/66/rev4/rules.mk | |||
| @@ -1,2 +1 @@ | |||
| 1 | BOARD = QMK_PROTON_C | ||
| 2 | # This file intentionally left blank | # This file intentionally left blank | |
diff --git a/keyboards/clueboard/66_hotswap/gen1/info.json b/keyboards/clueboard/66_hotswap/gen1/info.json index 18afe5412..bcf66e8af 100644 --- a/keyboards/clueboard/66_hotswap/gen1/info.json +++ b/keyboards/clueboard/66_hotswap/gen1/info.json | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | "width": 16.5, | 6 | "width": 16.5, |
| 7 | "debounce": 5, | 7 | "debounce": 5, |
| 8 | "processor": "STM32F303", | 8 | "processor": "STM32F303", |
| 9 | "board": "QMK_PROTON_C", | ||
| 9 | "diode_direction": "COL2ROW", | 10 | "diode_direction": "COL2ROW", |
| 10 | "features": { | 11 | "features": { |
| 11 | "audio": true, | 12 | "audio": true, |
diff --git a/keyboards/clueboard/66_hotswap/gen1/rules.mk b/keyboards/clueboard/66_hotswap/gen1/rules.mk index e23f9a4b3..33cf11a79 100644 --- a/keyboards/clueboard/66_hotswap/gen1/rules.mk +++ b/keyboards/clueboard/66_hotswap/gen1/rules.mk | |||
| @@ -1,4 +1,3 @@ | |||
| 1 | BOARD = QMK_PROTON_C | ||
| 2 | LED_MATRIX_DRIVER = IS31FL3731 | 1 | LED_MATRIX_DRIVER = IS31FL3731 |
| 3 | 2 | ||
| 4 | # project specific files | 3 | # project specific files |
diff --git a/keyboards/clueboard/california/info.json b/keyboards/clueboard/california/info.json index 02c06ce51..e40b2338c 100644 --- a/keyboards/clueboard/california/info.json +++ b/keyboards/clueboard/california/info.json | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | "url": "", | 3 | "url": "", |
| 4 | "maintainer": "skullydazed", | 4 | "maintainer": "skullydazed", |
| 5 | "processor": "STM32F303", | 5 | "processor": "STM32F303", |
| 6 | "board": "QMK_PROTON_C", | ||
| 6 | "matrix_pins": { | 7 | "matrix_pins": { |
| 7 | "direct": [ | 8 | "direct": [ |
| 8 | ["A10", "A9"], | 9 | ["A10", "A9"], |
diff --git a/keyboards/clueboard/california/rules.mk b/keyboards/clueboard/california/rules.mk index 14a7fa7b7..6e7633bfe 100644 --- a/keyboards/clueboard/california/rules.mk +++ b/keyboards/clueboard/california/rules.mk | |||
| @@ -1,2 +1 @@ | |||
| 1 | BOARD = QMK_PROTON_C | ||
| 2 | # This file intentionally left blank | # This file intentionally left blank | |
diff --git a/keyboards/cmm_studio/saka68/info.json b/keyboards/cmm_studio/saka68/info.json index 75a78649b..ac6d0465a 100644 --- a/keyboards/cmm_studio/saka68/info.json +++ b/keyboards/cmm_studio/saka68/info.json | |||
| @@ -1,6 +1,4 @@ | |||
| 1 | { | 1 | { |
| 2 | "keyboard_name": "", | ||
| 3 | "url": "", | ||
| 4 | "maintainer": "qmk", | 2 | "maintainer": "qmk", |
| 5 | "width": 17.25, | 3 | "width": 17.25, |
| 6 | "height": 5, | 4 | "height": 5, |
diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py index 0fdccb404..b262e3c66 100755 --- a/lib/python/qmk/cli/generate/rules_mk.py +++ b/lib/python/qmk/cli/generate/rules_mk.py | |||
| @@ -7,6 +7,7 @@ from qmk.info import info_json | |||
| 7 | from qmk.path import is_keyboard, normpath | 7 | from qmk.path import is_keyboard, normpath |
| 8 | 8 | ||
| 9 | info_to_rules = { | 9 | info_to_rules = { |
| 10 | 'board': 'BOARD', | ||
| 10 | 'bootloader': 'BOOTLOADER', | 11 | 'bootloader': 'BOOTLOADER', |
| 11 | 'processor': 'MCU', | 12 | 'processor': 'MCU', |
| 12 | } | 13 | } |
| @@ -37,7 +38,8 @@ def generate_rules_mk(cli): | |||
| 37 | 38 | ||
| 38 | # Bring in settings | 39 | # Bring in settings |
| 39 | for info_key, rule_key in info_to_rules.items(): | 40 | for info_key, rule_key in info_to_rules.items(): |
| 40 | rules_mk_lines.append(f'{rule_key} ?= {kb_info_json[info_key]}') | 41 | if info_key in kb_info_json: |
| 42 | rules_mk_lines.append(f'{rule_key} ?= {kb_info_json[info_key]}') | ||
| 41 | 43 | ||
| 42 | # Find features that should be enabled | 44 | # Find features that should be enabled |
| 43 | if 'features' in kb_info_json: | 45 | if 'features' in kb_info_json: |
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 0ea5136a9..cc81f7a08 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py | |||
| @@ -462,7 +462,7 @@ def _extract_rules_mk(info_data): | |||
| 462 | """Pull some keyboard information from existing rules.mk files | 462 | """Pull some keyboard information from existing rules.mk files |
| 463 | """ | 463 | """ |
| 464 | rules = rules_mk(info_data['keyboard_folder']) | 464 | rules = rules_mk(info_data['keyboard_folder']) |
| 465 | mcu = rules.get('MCU') | 465 | mcu = rules.get('MCU', info_data.get('processor')) |
| 466 | 466 | ||
| 467 | if mcu in CHIBIOS_PROCESSORS: | 467 | if mcu in CHIBIOS_PROCESSORS: |
| 468 | arm_processor_rules(info_data, rules) | 468 | arm_processor_rules(info_data, rules) |
| @@ -594,6 +594,12 @@ def arm_processor_rules(info_data, rules): | |||
| 594 | elif 'ARM_ATSAM' in rules: | 594 | elif 'ARM_ATSAM' in rules: |
| 595 | info_data['platform'] = 'ARM_ATSAM' | 595 | info_data['platform'] = 'ARM_ATSAM' |
| 596 | 596 | ||
| 597 | if 'BOARD' in rules: | ||
| 598 | if 'board' in info_data: | ||
| 599 | _log_warning(info_data, 'Board is specified in both info.json and rules.mk, the rules.mk value wins.') | ||
| 600 | |||
| 601 | info_data['board'] = rules['BOARD'] | ||
| 602 | |||
| 597 | return info_data | 603 | return info_data |
| 598 | 604 | ||
| 599 | 605 | ||
