SerializePaths( System.Xml.XmlDocument document, System.Xml.XmlElement parentEl) { var propGroup = document.CreateVSPropertyGroup(condition: this.ConditionText, parentEl: parentEl); if (null != this.OutputDirectory) { document.CreateVSElement("OutDir", value: this.OutputDirectory, parentEl: propGroup); } if (null != this.IntermediateDirectory) { document.CreateVSElement("IntDir", value: this.IntermediateDirectory, parentEl: propGroup); } if (null != this.TargetName) { document.CreateVSElement("TargetName", value: this.TargetName, parentEl: propGroup); } if (null != this.TargetExt) { document.CreateVSElement("TargetExt", value: this.TargetExt, parentEl: propGroup); } }
SerializeProperties( System.Xml.XmlDocument document, System.Xml.XmlElement parentEl) { if (this.Type == EType.NA) { Bam.Core.Log.DebugMessage("Defaulting project {0} to type Utility", this.Project.ProjectPath); this.Type = EType.Utility; this.EnableIntermediatePath(); } else { if (System.String.IsNullOrEmpty(this.PlatformToolset)) { throw new Bam.Core.Exception("Platform toolset not set for project {0}", this.Project.ProjectPath); } } var propGroup = document.CreateVSPropertyGroup(label: "Configuration", condition: this.ConditionText, parentEl: parentEl); document.CreateVSElement("ConfigurationType", value: this.Type.ToString(), parentEl: propGroup); document.CreateVSElement("PlatformToolset", value: this.PlatformToolset.ToString(), parentEl: propGroup); document.CreateVSElement("UseDebugLibraries", value: this.UseDebugLibraries.ToString().ToLower(), parentEl: propGroup); document.CreateVSElement("CharacterSet", value: this.CharacterSet.ToString(), parentEl: propGroup); document.CreateVSElement("WholeProgramOptimization", value: this.WholeProgramOptimization.ToString().ToLower(), parentEl: propGroup); }
SerializeDependentProjects( System.Xml.XmlDocument document, System.Xml.XmlElement parentEl) { if (this.OrderOnlyDependentProjects.Count > 0) { var itemGroupEl = document.CreateVSItemGroup(parentEl: parentEl); foreach (var project in this.OrderOnlyDependentProjects) { var projectRefEl = document.CreateVSElement("ProjectReference", parentEl: itemGroupEl); projectRefEl.SetAttribute("Include", Bam.Core.RelativePathUtilities.GetPath(project.ProjectPath, this.ProjectPath)); document.CreateVSElement("Project", value: project.Guid.ToString("B"), parentEl: projectRefEl); document.CreateVSElement("LinkLibraryDependencies", value: "false", parentEl: projectRefEl); } } if (this.LinkDependentProjects.Count > 0) { var itemGroupEl = document.CreateVSItemGroup(parentEl: parentEl); foreach (var project in this.LinkDependentProjects) { var projectRefEl = document.CreateVSElement("ProjectReference", parentEl: itemGroupEl); projectRefEl.SetAttribute("Include", Bam.Core.RelativePathUtilities.GetPath(project.ProjectPath, this.ProjectPath)); document.CreateVSElement("Project", value: project.Guid.ToString("B"), parentEl: projectRefEl); document.CreateVSElement("LinkLibraryDependencies", value: "true", parentEl: projectRefEl); } } }
CreateRootProject( System.Xml.XmlDocument document) { var project = document.CreateVSElement("Project"); document.AppendChild(project); return project; }
Serialize( System.Xml.XmlDocument document, System.Xml.XmlElement parentEl) { if ((this.Settings.Count == 0) && (this.Include == null)) { return; } var group = document.CreateVSElement(this.GetGroupName(), parentEl: parentEl); if (null != this.Include) { group.SetAttribute("Include", this.Include.Parse()); } foreach (var setting in this.Settings.OrderBy(pair => pair.Name)) { document.CreateVSElement(setting.Name, value: setting.Value, condition: setting.Condition, parentEl: group); } }