private void PopulateExecutionGraph(string root, TargetCollection targets, ExecutionGraph graph) { Target target = targets.Find(root); ExecutionNode node = graph.GetNode(root); if (target == null) { target = targets.Find(WildTarget); } bool noDependencies = true; foreach (string dependencyName in target.Dependencies) { PopulateExecutionGraph(dependencyName, targets, graph); ExecutionNode dependencyNode = graph.GetNode(dependencyName); dependencyNode.RegisterDependantNode(node); noDependencies = false; } if (noDependencies) { graph.RegisterLeafNode(node); } }