public ProjectFinder(TargetBuilder targetBuilder) { _namedValues = targetBuilder.NamedValues; }
private void Build() { BuildDomain domain = null; BuildTarget[] targets = Check.NotEmpty(_config.Targets); try { foreach (BuildTarget target in targets) { if (!String.IsNullOrEmpty(_groups)) { if (_groups.IndexOf(target.GroupName, StringComparison.OrdinalIgnoreCase) < 0 && target.GroupName.IndexOf(_groups, StringComparison.OrdinalIgnoreCase) < 0) continue; } using (Log.Start("Target {0}, {1}, {2}", target.Toolset, target.Configuration, target.Platform)) { if (domain == null || domain.ToolsVersion != target.Toolset) { if (domain != null) domain.Dispose(); domain = BuildDomain.CreateInstance(target.Toolset, _propertySets); } _errors += domain.Perform(new BuildTasks.SetContinue(_config.Options.ContinueOnError)); if (_verbosity.HasValue) _errors += domain.Perform(new BuildTasks.ConsoleOutput(_verbosity.Value)); TargetBuilder build = new TargetBuilder(_config, target, _propertySets, _targetNames); _errors += domain.Perform(build); _errors += domain.Perform(new UnloadAll()); } if (_errors > 0 && !_config.Options.ContinueOnError) break; } } finally { if (domain != null) domain.Dispose(); } }