Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
        ///-----------------------------------------------------------------
        /// 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.");
            }
        }
Ejemplo n.º 3
0
        //-- 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;
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
 private void TimedComputeDependencies(BuildResults buildResults, BuildOptions buildOptions)
 {
     buildResults.ComputeDependenciesStartTime = DateTime.Now;
     ComputeDependencies(buildOptions);
     buildResults.DependenciesValid = m_dependenciesValid;
     buildResults.ComputeDependenciesEndTime = DateTime.Now;
 }
Ejemplo n.º 6
0
        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;
        }