mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-30 21:02:32 +01:00 
			
		
		
		
	De-duplicate platform detection (#19545)
This commit is contained in:
		
							parent
							
								
									20474ae232
								
							
						
					
					
						commit
						e11235ee14
					
				| @ -180,6 +180,13 @@ generated-files: $(KEYMAP_OUTPUT)/src/config.h $(KEYMAP_OUTPUT)/src/keymap.c | ||||
| 
 | ||||
| endif | ||||
| 
 | ||||
| # 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:]') | ||||
| 
 | ||||
| 
 | ||||
| include $(BUILDDEFS_PATH)/converters.mk | ||||
| 
 | ||||
| include $(BUILDDEFS_PATH)/mcu_selection.mk | ||||
| @ -257,24 +264,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)","") | ||||
|  | ||||
| @ -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"}, | ||||
|  | ||||
| @ -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: | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Joel Challis
						Joel Challis