private void CreateLinkTarget(Link link)//, IList<LogQueueItem> messages) { Target target = new Target(uVisionProject.DefaultOptions); //Setting default options //target.SeTLPC2478DefaultOptions(); target.Name = Path.GetFileNameWithoutExtension(link.Name); target.Options.GenApp = TWO_STATE_BOOL.ENABLED; target.Options.GenLib = TWO_STATE_BOOL.DISABLED; target.Options.ADSFLGA = "226,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"; target.Options.ADSCCFLG.ARM_Thumb_Interworking = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Optimisation = OPTIMIZATION.Level0; target.Options.ADSCCFLG.Optimize_for_time = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Split_Load_and_Store_Multiple = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.One_EFL_Section_per_Function = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Strict_ANSI_C = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Enum_Container_always_int = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Plain_Char_is_Signed = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.ReadOnly_Position_Independent = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.ReadWrite_Position_Independent = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Thumb_Mode = THREE_STATE_BOOL.DISABLED; target.Options.ADSASFLG = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"; target.Options.ADSLDFG = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"; target.Options.ADSLDTA = ""; target.Options.ADSLDDA = ""; target.Options.Debug = "1"; target.Options.Browse = "1"; //Exclude files from building foreach (PKStudio.Tools.uVisionGenerator.Classes.uvProjectClasses.File f in uVisionProject.FileList.Values) { //if ((f.Type == uVision.Project.File.FILE_TYPE.C_FILE) || (f.Type == uVision.Project.File.FILE_TYPE.CPP_FILE) || (f.Type == uVision.Project.File.FILE_TYPE.ASM_FILE)) //{ PKStudio.Tools.uVisionGenerator.Classes.uvProjectClasses.FileOptions fileopt = new PKStudio.Tools.uVisionGenerator.Classes.uvProjectClasses.FileOptions(f); fileopt.IncBld = THREE_STATE_BOOL.DISABLED; target.FilesOpton.Add(fileopt); //} } target.Options.OutDir = Path.GetDirectoryName(link.OutputFileMSBuild) + "\\"; target.Options.OutName = Path.GetFileNameWithoutExtension(link.OutputFileMSBuild); link.OutputFileuVision = link.OutputFileMSBuild; foreach (RequiredObject obj in link.InputObjects.Values) { this.AddCompileFile(obj, target); } foreach (RequiredLibrary lib in link.InputLibraries.Values) { PKStudio.Tools.uVisionGenerator.Classes.uvProjectClasses.FileOptions fileOpt = target.FindFileOptions(lib.OutputFileuVision); fileOpt.IncBld = THREE_STATE_BOOL.ENABLED; } //string LinkString = ARMLINKPath; foreach (ArgCollection arg in link.ParamCollection.Values) { if (arg.Tag == "options") { switch (arg.Name) { //no need process this because all paths will be contained in file list case "--userlibpath": break; case "--scatter": //target.Options.ADSLDSC = arg[0]; target.Options.ADSLDSC = uVisionProject.ProjectPath + @"\" + Path.GetFileName(arg[0]); string line; using (StreamReader infile = new StreamReader(arg[0])) { while ((line = infile.ReadLine()) != null) { uVisionProject.Scatter.Add(uVisionProject.Scatter.Count + 1, line); } } //uVisionProject break; case "--device": break; case "--output": break; default: if (arg.Count > 0) { foreach (string s in arg) { //LinkString += " " + arg.Name + " " + s; target.Options.ADSLDMC.Add(arg.Name + " " + s); } } //else LinkString += " " + arg.Name; else target.Options.ADSLDMC.Add(arg.Name); break; } } } //foreach (BuildBase bb in link.AllInputs.Values) //{ // LinkString += " " + bb.OutputFileuVision; //} //target.AfterBuild.Add(LinkString); //PKArgParser ArgParser = new PKArgParser(); //Adds fromelf foreach (ParCollContainer container in FROMELF.Values) { if (container.Message.ToLower().Contains(link.OutputFileMSBuild.ToLower())) { target.AfterBuild.Add(container.Message); } } target.Num = uVisionProject.TargetList.Count + 1; uVisionProject.TargetList.Add(target.Num, target); if (target.BeforeBuild.Count > 0) { target.Options.BrunUsr_0.Run = TWO_STATE_BOOL.ENABLED; target.Options.BrunUsr_0.Command = ".\\BatFiles\\Prebuild" + @"\" + target.Name + ".bat"; } if (target.AfterBuild.Count > 0) { target.Options.RunUsr_0.Run = TWO_STATE_BOOL.ENABLED; target.Options.RunUsr_0.Command = ".\\BatFiles\\Postbuild" + @"\" + target.Name + ".bat"; } }
private void CreateLibraryTartet(RequiredLibrary lib) { Target target = new Target(uVisionProject.DefaultOptions); //Setting default options //target.Set_AT91SAM7S16_DefaultOptions(); //target.Options.SerializeXLM(@"AT91SAM7S16.xml"); //target.LoadOptions(@"text.xml"); target.Name = Path.GetFileNameWithoutExtension(lib.Name); target.Options.OutDir += uVisionTargetsPath + "\\" + target.Name + "\\"; target.Options.OutName = Path.GetFileNameWithoutExtension(lib.Name); target.Options.GenApp = TWO_STATE_BOOL.DISABLED; target.Options.GenLib = TWO_STATE_BOOL.ENABLED; target.Options.ADSFLGA = "226,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"; target.Options.ADSCCFLG.ARM_Thumb_Interworking = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Optimisation = OPTIMIZATION.Level0; target.Options.ADSCCFLG.Optimize_for_time = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Split_Load_and_Store_Multiple = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.One_EFL_Section_per_Function = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Strict_ANSI_C = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Enum_Container_always_int = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Plain_Char_is_Signed = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.ReadOnly_Position_Independent = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.ReadWrite_Position_Independent = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Thumb_Mode = THREE_STATE_BOOL.DISABLED; target.Options.ADSASFLG = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"; target.Options.Debug = "1"; target.Options.Browse = "1"; //Exclude files from building foreach (PKStudio.Tools.uVisionGenerator.Classes.uvProjectClasses.File f in uVisionProject.FileList.Values) { PKStudio.Tools.uVisionGenerator.Classes.uvProjectClasses.FileOptions fileopt = new PKStudio.Tools.uVisionGenerator.Classes.uvProjectClasses.FileOptions(f); fileopt.IncBld = THREE_STATE_BOOL.DISABLED; target.FilesOpton.Add(fileopt); } foreach (RequiredObject obj in lib.InputObjects.Values) { this.AddCompileFile(obj, target); } foreach (RequiredLibrary reqlib in lib.InputLibraries.Values) { PKStudio.Tools.uVisionGenerator.Classes.uvProjectClasses.FileOptions fileOpt = target.FindFileOptions(reqlib.OutputFileuVision); if (fileOpt == null) throw new MessagesParserException(KeilWizardStrings.IDS_ERROR_INTERNAL + " " + reqlib.OutputFileMSBuild + ": " + KeilWizardStrings.IDS_ERROR_CANT_FIND_LIBRARY_FILE_OPTIONS); fileOpt.IncBld = THREE_STATE_BOOL.ENABLED; this.CreateLibraryTartet(reqlib); } target.Num = uVisionProject.TargetList.Count + 1; if (!uVisionProject.ContainsTarget(target)) uVisionProject.TargetList.Add(target.Num, target); if (target.BeforeBuild.Count > 0) { target.Options.BrunUsr_0.Run = TWO_STATE_BOOL.ENABLED; target.Options.BrunUsr_0.Command = ".\\BatFiles\\Prebuild" + @"\" + target.Name + ".bat"; } if (target.AfterBuild.Count > 0) { target.Options.RunUsr_0.Run = TWO_STATE_BOOL.ENABLED; target.Options.RunUsr_0.Command = ".\\BatFiles\\Postbuild" + @"\" + target.Name + ".bat"; } }
private void CreateObjectTartet(RequiredObject obj) { Target target = new Target(uVisionProject.DefaultOptions); //Setting default options //target.SeTLPC2478DefaultOptions(); target.Name = Path.GetFileNameWithoutExtension(obj.Name); target.Options.OutDir += uVisionTargetsPath + "\\" + target.Name + "\\"; target.Options.OutName = Path.GetFileNameWithoutExtension(obj.Name); target.Options.GenApp = TWO_STATE_BOOL.DISABLED; target.Options.GenLib = TWO_STATE_BOOL.ENABLED; target.Options.ADSFLGA = "226,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"; target.Options.ADSCCFLG.ARM_Thumb_Interworking = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Optimisation = OPTIMIZATION.Level0; target.Options.ADSCCFLG.Optimize_for_time = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Split_Load_and_Store_Multiple = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.One_EFL_Section_per_Function = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Strict_ANSI_C = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Enum_Container_always_int = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Plain_Char_is_Signed = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.ReadOnly_Position_Independent = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.ReadWrite_Position_Independent = THREE_STATE_BOOL.DISABLED; target.Options.ADSCCFLG.Thumb_Mode = THREE_STATE_BOOL.DISABLED; target.Options.ADSASFLG = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"; target.Options.Debug = "1"; target.Options.Browse = "1"; //Exclude files from building foreach (PKStudio.Tools.uVisionGenerator.Classes.uvProjectClasses.File f in uVisionProject.FileList.Values) { PKStudio.Tools.uVisionGenerator.Classes.uvProjectClasses.FileOptions fileopt = new PKStudio.Tools.uVisionGenerator.Classes.uvProjectClasses.FileOptions(f); fileopt.IncBld = THREE_STATE_BOOL.DISABLED; target.FilesOpton.Add(fileopt); } this.AddCompileFile(obj, target); target.Num = uVisionProject.TargetList.Count + 1; uVisionProject.TargetList.Add(target.Num, target); if (target.BeforeBuild.Count > 0) { target.Options.BrunUsr_0.Run = TWO_STATE_BOOL.ENABLED; target.Options.BrunUsr_0.Command = ".\\BatFiles\\Prebuild" + @"\" + target.Name + ".bat"; } if (target.AfterBuild.Count > 0) { target.Options.RunUsr_0.Run = TWO_STATE_BOOL.ENABLED; target.Options.RunUsr_0.Command = ".\\BatFiles\\Postbuild" + @"\" + target.Name + ".bat"; } }