/// <summary> /// Parse a ProjectImportGroupElement /// </summary> /// <param name="element">The XML element to parse</param> /// <param name="parent">The parent <see cref="ProjectRootElement"/>.</param> /// <returns>A ProjectImportGroupElement derived from the XML element passed in</returns> private ProjectImportGroupElement ParseProjectImportGroupElement(XmlElementWithLocation element, ProjectRootElement parent) { ProjectXmlUtilities.VerifyThrowProjectAttributes(element, s_validAttributesOnlyConditionAndLabel); ProjectImportGroupElement importGroup = new ProjectImportGroupElement(element, parent, _project); foreach (XmlElementWithLocation childElement in ProjectXmlUtilities.GetVerifyThrowProjectChildElements(element)) { ProjectErrorUtilities.VerifyThrowInvalidProject ( childElement.Name == XMakeElements.import, childElement.Location, "UnrecognizedChildElement", childElement.Name, element.Name ); ProjectImportElement item = ParseProjectImportElement(childElement, importGroup); importGroup.AppendParentedChildNoChecks(item); } return(importGroup); }
static void b1(ProjectRootElement root, ProjectImportGroupElement pige) { const string FILE = @"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"; var avar = pige.AddImport(FILE); avar.Condition = makeExistsCondition(FILE); avar.Label = "LocalAppDataPlatform"; }
/// <summary> /// Parse a ProjectImportGroupElement /// </summary> /// <param name="element">The XML element to parse</param> /// <returns>A ProjectImportGroupElement derived from the XML element passed in</returns> private ProjectImportGroupElement ParseProjectImportGroupElement(XmlElementWithLocation element, ProjectRootElement parent) { ProjectXmlUtilities.VerifyThrowProjectAttributes(element, s_validAttributesOnlyConditionAndLabel); ProjectImportGroupElement importGroup = new ProjectImportGroupElement(element, parent, _project); foreach (XmlElementWithLocation childElement in ProjectXmlUtilities.GetVerifyThrowProjectChildElements(element)) { ProjectErrorUtilities.VerifyThrowInvalidProject ( childElement.Name == XMakeElements.import, childElement.Location, "UnrecognizedChildElement", childElement.Name, element.Name ); ProjectImportElement item = ParseProjectImportElement(childElement, importGroup); importGroup.AppendParentedChildNoChecks(item); } return importGroup; }
internal ProjectImportElement LookupImport(ProjectImportGroupElement parent, string importPath, string condition = null) { ProjectImportElement import = null; var label = Pivots.GetExpressionLabel(condition); if(string.IsNullOrEmpty(condition)) { import = parent.Imports.FirstOrDefault(each => importPath == each.Project && string.IsNullOrEmpty(each.Condition)); if(import != null) { return import; } return parent.AddImport(importPath); } var conditionExpression = Pivots.GetMSBuildCondition(Name, condition); import = parent.Imports.FirstOrDefault(each => importPath == each.Project && each.Condition == conditionExpression); if(import != null) { return import; } import = parent.AddImport(importPath); import.Label = label; import.Condition = conditionExpression; return import; }