~ruther/qmk_firmware

0ce3f6bcfe8241e51dd6936d24e6a88c907c535d — Joel Challis 2 years ago a1f253c
De-duplicate platform detection (#19603)

M builddefs/build_keyboard.mk => builddefs/build_keyboard.mk +6 -18
@@ 184,6 184,12 @@ include $(BUILDDEFS_PATH)/converters.mk

include $(BUILDDEFS_PATH)/mcu_selection.mk

# PLATFORM_KEY should be detected in info.json via key 'processor' (or rules.mk 'MCU')
ifeq ($(PLATFORM_KEY),)
    $(call CATASTROPHIC_ERROR,Platform not defined)
endif
PLATFORM=$(shell echo $(PLATFORM_KEY) | tr '[:lower:]' '[:upper:]')

# Find all the C source files to be compiled in subfolders.
KEYBOARD_SRC :=



@@ 257,24 263,6 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/$(KEYBOARD_FOLDER_5).h)","")
    FOUND_KEYBOARD_H = $(KEYBOARD_FOLDER_5).h
endif

# Determine and set parameters based on the keyboard's processor family.
# We can assume a ChibiOS target When MCU_FAMILY is defined since it's
# not used for LUFA
ifdef MCU_FAMILY
    PLATFORM=CHIBIOS
    PLATFORM_KEY=chibios
    FIRMWARE_FORMAT?=bin
    OPT_DEFS += -DMCU_$(MCU_FAMILY)
else ifdef ARM_ATSAM
    PLATFORM=ARM_ATSAM
    PLATFORM_KEY=arm_atsam
    FIRMWARE_FORMAT=bin
else
    PLATFORM=AVR
    PLATFORM_KEY=avr
    FIRMWARE_FORMAT?=hex
endif

# Find all of the config.h files and add them to our CONFIG_H define.
CONFIG_H :=
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")

M builddefs/converters.mk => builddefs/converters.mk +1 -0
@@ 19,6 19,7 @@ ifneq ($(CONVERT_TO),)

    -include $(CONVERTER)/pre_converter.mk

    PLATFORM_KEY = $(shell echo $(CONVERTER) | rev | cut -d "/" -f4 | rev)
    TARGET := $(TARGET)_$(CONVERT_TO)

    # Configure any defaults

M data/mappings/info_rules.hjson => data/mappings/info_rules.hjson +2 -0
@@ 38,6 38,8 @@
    "PS2_MOUSE_ENABLE": {"info_key": "ps2.mouse_enabled", "value_type": "bool"},
    "PS2_DRIVER": {"info_key": "ps2.driver"},

    "PLATFORM_KEY": {"info_key": "platform_key", "to_json": false},

    // Items we want flagged in lint
    "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
    "CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},

M lib/python/qmk/info.py => lib/python/qmk/info.py +3 -0
@@ 751,6 751,7 @@ def arm_processor_rules(info_data, rules):
    """
    info_data['processor_type'] = 'arm'
    info_data['protocol'] = 'ChibiOS'
    info_data['platform_key'] = 'chibios'

    if 'STM32' in info_data['processor']:
        info_data['platform'] = 'STM32'


@@ 758,6 759,7 @@ def arm_processor_rules(info_data, rules):
        info_data['platform'] = rules['MCU_SERIES']
    elif 'ARM_ATSAM' in rules:
        info_data['platform'] = 'ARM_ATSAM'
        info_data['platform_key'] = 'arm_atsam'

    return info_data



@@ 767,6 769,7 @@ def avr_processor_rules(info_data, rules):
    """
    info_data['processor_type'] = 'avr'
    info_data['platform'] = rules['ARCH'] if 'ARCH' in rules else 'unknown'
    info_data['platform_key'] = 'avr'
    info_data['protocol'] = 'V-USB' if info_data['processor'] in VUSB_PROCESSORS else 'LUFA'

    # FIXME(fauxpark/anyone): Eventually we should detect the protocol by looking at PROTOCOL inherited from mcu_selection.mk:

M platforms/arm_atsam/bootloader.mk => platforms/arm_atsam/bootloader.mk +2 -0
@@ 27,6 27,8 @@
# the respective file under `platforms/<PLATFORM>/bootloaders/custom.c` to see
# which functions may be overridden.

FIRMWARE_FORMAT?=bin

ifeq ($(strip $(BOOTLOADER)), custom)
    OPT_DEFS += -DBOOTLOADER_CUSTOM
    BOOTLOADER_TYPE = custom

M platforms/avr/bootloader.mk => platforms/avr/bootloader.mk +2 -0
@@ 37,6 37,8 @@
# BOOTLOADER_SIZE can still be defined manually, but it's recommended
# you add any possible configuration to this list

FIRMWARE_FORMAT?=hex

ifeq ($(strip $(BOOTLOADER)), custom)
    OPT_DEFS += -DBOOTLOADER_CUSTOM
    BOOTLOADER_TYPE = custom

M platforms/chibios/bootloader.mk => platforms/chibios/bootloader.mk +2 -0
@@ 36,6 36,8 @@
# the respective file under `platforms/<PLATFORM>/bootloaders/custom.c` to see
# which functions may be overridden.

FIRMWARE_FORMAT?=bin

ifeq ($(strip $(BOOTLOADER)), custom)
    OPT_DEFS += -DBOOTLOADER_CUSTOM
    BOOTLOADER_TYPE = custom

M platforms/chibios/platform.mk => platforms/chibios/platform.mk +3 -0
@@ 442,6 442,9 @@ LDFLAGS  += $(SHARED_LDFLAGS) $(SHARED_LDSYMBOLS) $(TOOLCHAIN_LDFLAGS) $(TOOLCHA
# Tell QMK that we are hosting it on ChibiOS.
OPT_DEFS += -DPROTOCOL_CHIBIOS

# And what flavor of MCU
OPT_DEFS += -DMCU_$(MCU_FAMILY)

# ChibiOS supports synchronization primitives like a Mutex
OPT_DEFS += -DPLATFORM_SUPPORTS_SYNCHRONIZATION