in scripts/configuration/AssemblyGroup.cake [28:68]
private AssemblyGroup(XmlNode groupNode, AssemblyGroup parent = null)
{
AssemblyPaths = new List<string>();
Subgroups = new List<AssemblyGroup>();
Id = groupNode.Attributes.GetNamedItem("id").Value;
var buildGroup = groupNode.Attributes.GetNamedItem("buildGroup")?.Value;
var platformString = Statics.Context.IsRunningOnUnix() ? "mac" : "windows";
if (buildGroup != null)
{
Download = (buildGroup != platformString);
}
else if (parent != null)
{
Download = parent.Download;
}
var parentFolder = parent?.Folder ?? string.Empty;
Folder = groupNode.Attributes.GetNamedItem("folder")?.Value ?? string.Empty;
Folder = System.IO.Path.Combine(parentFolder, Folder);
if (!Folder.StartsWith(Statics.TemporaryPrefix))
{
Folder = Statics.TemporaryPrefix + Folder;
}
for (int i = 0; i < groupNode.ChildNodes.Count; ++i)
{
var childNode = groupNode.ChildNodes.Item(i);
if (childNode.Name == "assembly")
{
var assemblyName = childNode.Attributes.GetNamedItem("path").Value;
AssemblyPaths.Add(assemblyName);
if (System.IO.Path.GetExtension(assemblyName) == ".dll")
{
var docName = System.IO.Path.ChangeExtension(assemblyName, "xml");
AssemblyPaths.Add(docName);
}
}
else if (childNode.Name == "group")
{
Subgroups.Add(new AssemblyGroup(childNode, this));
}
}
}