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
This commit is contained in:
Zach White 2021-01-09 20:18:47 -08:00 committed by GitHub
parent 54a8262dfe
commit eaa9106ec7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 19 additions and 9 deletions

View file

@ -27,6 +27,11 @@
"type": "string", "type": "string",
"enum": ["MK20DX128", "MK20DX256", "MKL26Z64", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F411", "at90usb1286", "at90usb646", "atmega16u2", "atmega328p", "atmega32a", "atmega32u2", "atmega32u4", "attiny85", "cortex-m4", "unknown"] "enum": ["MK20DX128", "MK20DX256", "MKL26Z64", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F411", "at90usb1286", "at90usb646", "atmega16u2", "atmega328p", "atmega32a", "atmega32u2", "atmega32u4", "attiny85", "cortex-m4", "unknown"]
}, },
"board": {
"type": "string",
"minLength": 2,
"pattern": "^[a-zA-Z_][0-9a-zA-Z_]*$"
},
"bootloader": { "bootloader": {
"type": "string", "type": "string",
"enum": ["atmel-dfu", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "stm32-dfu", "stm32duino", "unknown", "USBasp"] "enum": ["atmel-dfu", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "stm32-dfu", "stm32duino", "unknown", "USBasp"]

View file

@ -6,6 +6,7 @@
"width": 15, "width": 15,
"debounce": 6, "debounce": 6,
"processor": "STM32F303", "processor": "STM32F303",
"board": "QMK_PROTON_C",
"diode_direction": "COL2ROW", "diode_direction": "COL2ROW",
"features": { "features": {
"audio": true, "audio": true,

View file

@ -1,4 +1,2 @@
BOARD = QMK_PROTON_C
# project specific files # project specific files
SRC = led.c SRC = led.c

View file

@ -6,6 +6,7 @@
"width": 16.5, "width": 16.5,
"debounce": 5, "debounce": 5,
"processor": "STM32F303", "processor": "STM32F303",
"board": "QMK_PROTON_C",
"diode_direction": "COL2ROW", "diode_direction": "COL2ROW",
"features": { "features": {
"audio": true, "audio": true,

View file

@ -1,2 +1 @@
BOARD = QMK_PROTON_C
# This file intentionally left blank # This file intentionally left blank

View file

@ -6,6 +6,7 @@
"width": 16.5, "width": 16.5,
"debounce": 5, "debounce": 5,
"processor": "STM32F303", "processor": "STM32F303",
"board": "QMK_PROTON_C",
"diode_direction": "COL2ROW", "diode_direction": "COL2ROW",
"features": { "features": {
"audio": true, "audio": true,

View file

@ -1,4 +1,3 @@
BOARD = QMK_PROTON_C
LED_MATRIX_DRIVER = IS31FL3731 LED_MATRIX_DRIVER = IS31FL3731
# project specific files # project specific files

View file

@ -3,6 +3,7 @@
"url": "", "url": "",
"maintainer": "skullydazed", "maintainer": "skullydazed",
"processor": "STM32F303", "processor": "STM32F303",
"board": "QMK_PROTON_C",
"matrix_pins": { "matrix_pins": {
"direct": [ "direct": [
["A10", "A9"], ["A10", "A9"],

View file

@ -1,2 +1 @@
BOARD = QMK_PROTON_C
# This file intentionally left blank # This file intentionally left blank

View file

@ -1,6 +1,4 @@
{ {
"keyboard_name": "",
"url": "",
"maintainer": "qmk", "maintainer": "qmk",
"width": 17.25, "width": 17.25,
"height": 5, "height": 5,

View file

@ -7,6 +7,7 @@ from qmk.info import info_json
from qmk.path import is_keyboard, normpath from qmk.path import is_keyboard, normpath
info_to_rules = { info_to_rules = {
'board': 'BOARD',
'bootloader': 'BOOTLOADER', 'bootloader': 'BOOTLOADER',
'processor': 'MCU', 'processor': 'MCU',
} }
@ -37,7 +38,8 @@ def generate_rules_mk(cli):
# Bring in settings # Bring in settings
for info_key, rule_key in info_to_rules.items(): for info_key, rule_key in info_to_rules.items():
rules_mk_lines.append(f'{rule_key} ?= {kb_info_json[info_key]}') if info_key in kb_info_json:
rules_mk_lines.append(f'{rule_key} ?= {kb_info_json[info_key]}')
# Find features that should be enabled # Find features that should be enabled
if 'features' in kb_info_json: if 'features' in kb_info_json:

View file

@ -462,7 +462,7 @@ def _extract_rules_mk(info_data):
"""Pull some keyboard information from existing rules.mk files """Pull some keyboard information from existing rules.mk files
""" """
rules = rules_mk(info_data['keyboard_folder']) rules = rules_mk(info_data['keyboard_folder'])
mcu = rules.get('MCU') mcu = rules.get('MCU', info_data.get('processor'))
if mcu in CHIBIOS_PROCESSORS: if mcu in CHIBIOS_PROCESSORS:
arm_processor_rules(info_data, rules) arm_processor_rules(info_data, rules)
@ -594,6 +594,12 @@ def arm_processor_rules(info_data, rules):
elif 'ARM_ATSAM' in rules: elif 'ARM_ATSAM' in rules:
info_data['platform'] = 'ARM_ATSAM' info_data['platform'] = 'ARM_ATSAM'
if 'BOARD' in rules:
if 'board' in info_data:
_log_warning(info_data, 'Board is specified in both info.json and rules.mk, the rules.mk value wins.')
info_data['board'] = rules['BOARD']
return info_data return info_data