uv-k5-firmware-chinese-lts/external/CMSIS_5/CMSIS/RTOS2/RTX/Library/build.py
2023-11-30 14:38:27 +08:00

50 lines
1.2 KiB
Python

#!/usr/bin/python3
# -*- coding: utf-8 -*-
from enum import Enum
from matrix_runner import main, matrix_axis, matrix_action, matrix_command
@matrix_axis("device", "d", "Device(s) to be considered.")
class Device(Enum):
CM0 = ('CM0', 'CM0_LE')
CM3 = ('CM3', 'CM3_LE')
CM4F = ('CM4F', 'CM4F_LE')
V8MB = ('V8MB', 'ARMv8MBL_LE')
V8MBN = ('V8MBN', 'ARMv8MBL_NS_LE')
V8MM = ('V8MM', 'ARMv8MML_LE')
V8MMF = ('V8MMF', 'ARMv8MML_SP_LE')
V8MMFN = ('V8MMFN', 'ARMv8MML_SP_NS_LE')
V8MMN = ('V8MMN', 'ARMv8MML_NS_LE')
@matrix_axis("compiler", "c", "Compiler(s) to be considered.")
class CompilerAxis(Enum):
AC6 = ('AC6', 'ArmCompiler6', 'armclang')
GCC = ('GCC',)
@property
def project(self):
return {
CompilerAxis.AC6: "ARM/MDK/RTX_CM.uvprojx",
CompilerAxis.GCC: "GCC/MDK/RTX_CM.uvprojx"
}[self]
@matrix_action
def build(config, results):
"""Build the selected configurations."""
yield uvision(config)
@matrix_command()
def uvision(config):
return ['uvision.com',
'-r', config.compiler.project,
'-t', config.device[1],
'-j0']
if __name__ == "__main__":
main()