public static void PrintBuildResults(BuildOptions options, BuildResults buildResults) { Console.WriteLine("==================================================="); Console.WriteLine("BuildResults.Action = {0}", buildResults.Action); Console.WriteLine("BuildResults.Success = {0}", buildResults.Success); Console.WriteLine("BuildResults.TranslationCount = {0}", buildResults.TranslationCount); Console.WriteLine("BuildResults.UpToDateCount = {0}", buildResults.UpToDateCount); Console.WriteLine("BuildResults.UpdateImplicitInputsCount = {0}", buildResults.UpdateImplicitInputsCount); Console.WriteLine("BuildOptions.FileDecider.FStatCount= {0}", options.FileDecider.FStatCount); TimeSpan executionTime = buildResults.ExecuteEndTime - buildResults.ExecuteStartTime; Console.WriteLine("# ExecutionTime = {0}", executionTime); }
///----------------------------------------------------------------- /// Public interface public BuildProcess( BuildGraph buildGraph, BuildAction buildAction, BuildOptions buildOptions, BuildResults buildResults, IEnumerable<BuildNode> buildNodes, bool processDependencies) { m_buildGraph = buildGraph; m_buildAction = buildAction; m_buildOptions = buildOptions; m_buildResults = buildResults; bool initialized = InitializeBuildProcess(buildNodes, processDependencies); if (!initialized) { throw new InvalidOperationException("Failed to initialize BuildProcess."); } }
//-- Public interface /// Execute the specified action on targets. /// This is how you kick off a Build. public BuildResults Execute( BuildAction action, BuildOptions buildOptions, IEnumerable<string> targetPaths, bool processDependencies) { Trace.TraceInformation("Execute {0}", action); Trace.TraceInformation("-----------"); // TODO: trace targets BuildResults buildResults = new BuildResults(); buildResults.Action = action; buildResults.ExecuteStartTime = DateTime.Now; buildResults.Success = UntimedExecute( action, buildOptions, targetPaths, processDependencies, buildResults); buildResults.ExecuteEndTime = DateTime.Now; return buildResults; }
private bool UntimedExecute( BuildAction action, BuildOptions buildOptions, IEnumerable<string> targetPaths, bool processDependencies, BuildResults buildResults) { TimedComputeDependencies(buildResults, buildOptions); if (!m_dependenciesValid) { return false; } HashSet<BuildFile> targets = GetBuildFilesForPaths(targetPaths); HashSet<BuildNode> buildNodes = GetBuildNodesForFiles(targets); if (buildNodes == null) { return false; } BuildProcess buildProcess = new BuildProcess( this, action, buildOptions, buildResults, buildNodes, processDependencies); bool result = buildProcess.Run(); return result; }
private void TimedComputeDependencies(BuildResults buildResults, BuildOptions buildOptions) { buildResults.ComputeDependenciesStartTime = DateTime.Now; ComputeDependencies(buildOptions); buildResults.DependenciesValid = m_dependenciesValid; buildResults.ComputeDependenciesEndTime = DateTime.Now; }
internal BuildProcess CreateBuildProcess( BuildOptions buildOptions, IEnumerable<string> targetPaths) { ComputeDependencies(buildOptions); if (!m_dependenciesValid) { return null; } HashSet<BuildFile> targets = GetBuildFilesForPaths(targetPaths); HashSet<BuildNode> buildNodes = GetBuildNodesForFiles(targets); if (buildNodes == null) { return null; } BuildResults buildResults = new BuildResults(); BuildProcess buildProcess = new BuildProcess( this, BuildAction.Build /* don't care */, buildOptions, buildResults /* don't care */, buildNodes, true /* processDependencies */); return buildProcess; }