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);
 }
示例#3
0
        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);
                }
            }
        }
示例#4
0
 CreateRootProject(
     System.Xml.XmlDocument document)
 {
     var project = document.CreateVSElement("Project");
     document.AppendChild(project);
     return project;
 }
示例#5
0
 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);
     }
 }