forked from mirrors/qmk_userspace
		
	De-duplicate platform detection (#19603)
This commit is contained in:
		
					parent
					
						
							
								a1f253cbef
							
						
					
				
			
			
				commit
				
					
						0ce3f6bcfe
					
				
			
		
					 8 changed files with 21 additions and 18 deletions
				
			
		| 
						 | 
					@ -184,6 +184,12 @@ include $(BUILDDEFS_PATH)/converters.mk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include $(BUILDDEFS_PATH)/mcu_selection.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.
 | 
					# Find all the C source files to be compiled in subfolders.
 | 
				
			||||||
KEYBOARD_SRC :=
 | 
					KEYBOARD_SRC :=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -257,24 +263,6 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/$(KEYBOARD_FOLDER_5).h)","")
 | 
				
			||||||
    FOUND_KEYBOARD_H = $(KEYBOARD_FOLDER_5).h
 | 
					    FOUND_KEYBOARD_H = $(KEYBOARD_FOLDER_5).h
 | 
				
			||||||
endif
 | 
					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.
 | 
					# Find all of the config.h files and add them to our CONFIG_H define.
 | 
				
			||||||
CONFIG_H :=
 | 
					CONFIG_H :=
 | 
				
			||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")
 | 
					ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,6 +19,7 @@ ifneq ($(CONVERT_TO),)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    -include $(CONVERTER)/pre_converter.mk
 | 
					    -include $(CONVERTER)/pre_converter.mk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PLATFORM_KEY = $(shell echo $(CONVERTER) | rev | cut -d "/" -f4 | rev)
 | 
				
			||||||
    TARGET := $(TARGET)_$(CONVERT_TO)
 | 
					    TARGET := $(TARGET)_$(CONVERT_TO)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Configure any defaults
 | 
					    # Configure any defaults
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,6 +38,8 @@
 | 
				
			||||||
    "PS2_MOUSE_ENABLE": {"info_key": "ps2.mouse_enabled", "value_type": "bool"},
 | 
					    "PS2_MOUSE_ENABLE": {"info_key": "ps2.mouse_enabled", "value_type": "bool"},
 | 
				
			||||||
    "PS2_DRIVER": {"info_key": "ps2.driver"},
 | 
					    "PS2_DRIVER": {"info_key": "ps2.driver"},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    "PLATFORM_KEY": {"info_key": "platform_key", "to_json": false},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Items we want flagged in lint
 | 
					    // Items we want flagged in lint
 | 
				
			||||||
    "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
 | 
					    "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"},
 | 
					    "CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -751,6 +751,7 @@ def arm_processor_rules(info_data, rules):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    info_data['processor_type'] = 'arm'
 | 
					    info_data['processor_type'] = 'arm'
 | 
				
			||||||
    info_data['protocol'] = 'ChibiOS'
 | 
					    info_data['protocol'] = 'ChibiOS'
 | 
				
			||||||
 | 
					    info_data['platform_key'] = 'chibios'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if 'STM32' in info_data['processor']:
 | 
					    if 'STM32' in info_data['processor']:
 | 
				
			||||||
        info_data['platform'] = 'STM32'
 | 
					        info_data['platform'] = 'STM32'
 | 
				
			||||||
| 
						 | 
					@ -758,6 +759,7 @@ def arm_processor_rules(info_data, rules):
 | 
				
			||||||
        info_data['platform'] = rules['MCU_SERIES']
 | 
					        info_data['platform'] = rules['MCU_SERIES']
 | 
				
			||||||
    elif 'ARM_ATSAM' in rules:
 | 
					    elif 'ARM_ATSAM' in rules:
 | 
				
			||||||
        info_data['platform'] = 'ARM_ATSAM'
 | 
					        info_data['platform'] = 'ARM_ATSAM'
 | 
				
			||||||
 | 
					        info_data['platform_key'] = 'arm_atsam'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return info_data
 | 
					    return info_data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -767,6 +769,7 @@ def avr_processor_rules(info_data, rules):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    info_data['processor_type'] = 'avr'
 | 
					    info_data['processor_type'] = 'avr'
 | 
				
			||||||
    info_data['platform'] = rules['ARCH'] if 'ARCH' in rules else 'unknown'
 | 
					    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'
 | 
					    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:
 | 
					    # FIXME(fauxpark/anyone): Eventually we should detect the protocol by looking at PROTOCOL inherited from mcu_selection.mk:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,6 +27,8 @@
 | 
				
			||||||
# the respective file under `platforms/<PLATFORM>/bootloaders/custom.c` to see
 | 
					# the respective file under `platforms/<PLATFORM>/bootloaders/custom.c` to see
 | 
				
			||||||
# which functions may be overridden.
 | 
					# which functions may be overridden.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FIRMWARE_FORMAT?=bin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(strip $(BOOTLOADER)), custom)
 | 
					ifeq ($(strip $(BOOTLOADER)), custom)
 | 
				
			||||||
    OPT_DEFS += -DBOOTLOADER_CUSTOM
 | 
					    OPT_DEFS += -DBOOTLOADER_CUSTOM
 | 
				
			||||||
    BOOTLOADER_TYPE = custom
 | 
					    BOOTLOADER_TYPE = custom
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,6 +37,8 @@
 | 
				
			||||||
# BOOTLOADER_SIZE can still be defined manually, but it's recommended
 | 
					# BOOTLOADER_SIZE can still be defined manually, but it's recommended
 | 
				
			||||||
# you add any possible configuration to this list
 | 
					# you add any possible configuration to this list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FIRMWARE_FORMAT?=hex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(strip $(BOOTLOADER)), custom)
 | 
					ifeq ($(strip $(BOOTLOADER)), custom)
 | 
				
			||||||
    OPT_DEFS += -DBOOTLOADER_CUSTOM
 | 
					    OPT_DEFS += -DBOOTLOADER_CUSTOM
 | 
				
			||||||
    BOOTLOADER_TYPE = custom
 | 
					    BOOTLOADER_TYPE = custom
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,6 +36,8 @@
 | 
				
			||||||
# the respective file under `platforms/<PLATFORM>/bootloaders/custom.c` to see
 | 
					# the respective file under `platforms/<PLATFORM>/bootloaders/custom.c` to see
 | 
				
			||||||
# which functions may be overridden.
 | 
					# which functions may be overridden.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FIRMWARE_FORMAT?=bin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(strip $(BOOTLOADER)), custom)
 | 
					ifeq ($(strip $(BOOTLOADER)), custom)
 | 
				
			||||||
    OPT_DEFS += -DBOOTLOADER_CUSTOM
 | 
					    OPT_DEFS += -DBOOTLOADER_CUSTOM
 | 
				
			||||||
    BOOTLOADER_TYPE = custom
 | 
					    BOOTLOADER_TYPE = custom
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -442,6 +442,9 @@ LDFLAGS  += $(SHARED_LDFLAGS) $(SHARED_LDSYMBOLS) $(TOOLCHAIN_LDFLAGS) $(TOOLCHA
 | 
				
			||||||
# Tell QMK that we are hosting it on ChibiOS.
 | 
					# Tell QMK that we are hosting it on ChibiOS.
 | 
				
			||||||
OPT_DEFS += -DPROTOCOL_CHIBIOS
 | 
					OPT_DEFS += -DPROTOCOL_CHIBIOS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# And what flavor of MCU
 | 
				
			||||||
 | 
					OPT_DEFS += -DMCU_$(MCU_FAMILY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# ChibiOS supports synchronization primitives like a Mutex
 | 
					# ChibiOS supports synchronization primitives like a Mutex
 | 
				
			||||||
OPT_DEFS += -DPLATFORM_SUPPORTS_SYNCHRONIZATION
 | 
					OPT_DEFS += -DPLATFORM_SUPPORTS_SYNCHRONIZATION
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue