private void ConnectDependant(string name, TargetTreeItem parent) { var item = GetItem(name) as TargetTreeItem; if (item == null) { item = new TargetTreeItem(name, rootTreeItem); parent.AddDependsOnTarget(item); var target = analyzer.GetTarget(name); if (target != null) { foreach (var dep in Helper.SplitValue(target.DependsOnTargets)) { if (dep.StartsWith("$(")) { var propName = dep.Trim('$', '(', ')'); var deps = Helper.SplitValue(analyzer.GetPropertyValue(propName)); foreach (var val in deps) { ConnectDependant(val, item); } } else { ConnectDependant(dep, item); } } } } }
public void SetDefaultTargets(string[] targets) { if (rootTreeItem != null) { throw new InvalidOperationException("Can only set targets once."); } rootTreeItem = TargetTreeItem.Root; foreach (var name in targets) { ConnectDependant(name, rootTreeItem); } // TODO: Search for Before and After targets. }
public void AddDependsOnTarget(TargetTreeItem dep) { dependsOnTargets.Add(dep); }
public void AddAfterTarget(TargetTreeItem after) { afterTargets.Add(after); }
public void AddBeforeTarget(TargetTreeItem before) { beforeTargets.Add(before); }
public TargetTreeItem(string targetName, TargetTreeItem parent) { TargetName = targetName; Parent = parent; }