#!/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()