public void Build(Func <ProjectDOM.Project, PathString, Factory.Collection> evalPlugins, SDK.IMonitorContext monitor, PathString buildTarget) { _CancelRequested = false; var state = new Evaluation.PipelineClientState.Manager(); var prjFilePath = _SrcPrj; prjFilePath = prjFilePath.AsAbsolute(); var dstDirPath = buildTarget.AsAbsolute(); // load project var document = ProjectDOM.LoadProjectFrom(prjFilePath); // load plugins var prjDir = prjFilePath.DirectoryPath; var plugins = evalPlugins(document, prjDir); // create build context var buildSettings = Evaluation.BuildContext.Create(_Configuration, prjDir, dstDirPath, _TargetTask == "SIMULATE"); // do build ProjectDOM.BuildProject(document, buildSettings, plugins.CreateInstance, monitor, state); if (!IsSimulation) { CommitBuildResults(_TmpDir, _OutDir); } }