private static TestResult TestVendorSample(LoadedBSP.LoadedMCU mcu, BSPEngine.VendorSample vs, string mcuDir, VendorSampleDirectory sampleDir)
{
var configuredMCU = new LoadedBSP.ConfiguredMCU(mcu, GetDefaultPropertyValues(mcu.ExpandedMCU.ConfigurableProperties));
configuredMCU.Configuration["com.sysprogs.toolchainoptions.arm.libnosys"] = "--specs=nosys.specs";
if (configuredMCU.ExpandedMCU.FLASHSize == 0)
{
configuredMCU.Configuration["com.sysprogs.bspoptions.primary_memory"] = "sram";
}
var entries = vs.Configuration.MCUConfiguration?.Entries;
if (entries != null)
{
foreach (var e in entries)
{
configuredMCU.Configuration[e.Key] = e.Value;
}
}
var bspDict = configuredMCU.BuildSystemDictionary(SystemDirs);
bspDict["PROJECTNAME"] = "test";
bspDict["SYS:VSAMPLE_DIR"] = sampleDir.Path;
var prj = new GeneratedProject(configuredMCU, vs, mcuDir, bspDict, vs.Configuration.Frameworks ?? new string[0]);
var projectCfg = PropertyDictionary2.ReadPropertyDictionary(vs.Configuration.MCUConfiguration);
var frameworkCfg = PropertyDictionary2.ReadPropertyDictionary(vs.Configuration.Configuration);
foreach (var k in projectCfg.Keys)
{
bspDict[k] = projectCfg[k];
}
var frameworkIDs = vs.Configuration.Frameworks?.ToDictionary(fw => fw, fw => true);
prj.AddBSPFilesToProject(bspDict, frameworkCfg, frameworkIDs);
var flags = prj.GetToolFlags(bspDict, frameworkCfg, frameworkIDs);
//ToolFlags flags = new ToolFlags { CXXFLAGS = " ", COMMONFLAGS = "-mcpu=cortex-m3 -mthumb", LDFLAGS = "-Wl,-gc-sections -Wl,-Map," + "test.map", CFLAGS = "-ffunction-sections -Os -MD" };
flags.CFLAGS += " -MD";
flags.CXXFLAGS += " -MD";
flags.IncludeDirectories = LoadedBSP.Combine(flags.IncludeDirectories, vs.IncludeDirectories).Distinct().ToArray();
flags.PreprocessorMacros = LoadedBSP.Combine(flags.PreprocessorMacros, vs.PreprocessorMacros);
flags = LoadedBSP.ConfiguredMCU.ExpandToolFlags(flags, bspDict, null);
Dictionary <string, bool> sourceExtensions = new Dictionary <string, bool>(StringComparer.InvariantCultureIgnoreCase);
sourceExtensions.Add("c", true);
sourceExtensions.Add("cpp", true);
sourceExtensions.Add("s", true);
return(BuildAndRunValidationJob(mcu, mcuDir, false, null, prj, flags, sourceExtensions, null, null, vs));
}