diff options
author | 2016-11-15 17:30:45 +0000 | |
---|---|---|
committer | 2016-11-16 15:56:25 +0000 | |
commit | e134f794337054562d3119b2bf151fc83fcd9a66 (patch) | |
tree | 5059a70572bd4260bc284b78b296776ea0939dfc /src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java | |
parent | 461a772d45c2b7a7624b46d7aee44a460527b792 (diff) |
Code cleanup for interleaving target pattern eval and config creation.
--
MOS_MIGRATED_REVID=139209942
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java index 522f753586..8eafd9d6fc 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java @@ -150,10 +150,7 @@ public final class BuildTool { executionTool.init(); } - // Loading phase. - loadingResult = runLoadingPhase(request, validator); - - // Create the build configurations. + // Error out early if multi_cpus is set, but we're not in build or test command. if (!request.getMultiCpus().isEmpty()) { getReporter().handle(Event.warn( "The --experimental_multi_cpu option is _very_ experimental and only intended for " @@ -165,9 +162,25 @@ public final class BuildTool { + "'test' right now!"); } } - configurations = env.getSkyframeExecutor().createConfigurations( - env.getReporter(), runtime.getConfigurationFactory(), buildOptions, - request.getMultiCpus(), request.getViewOptions().keepGoing); + + // Exit if there are any pending exceptions from modules. + env.throwPendingException(); + + // Target pattern evaluation. + loadingResult = evaluateTargetPatterns(request, validator); + + // Exit if there are any pending exceptions from modules. + env.throwPendingException(); + + // Configuration creation. + configurations = + env.getSkyframeExecutor() + .createConfigurations( + env.getReporter(), + runtime.getConfigurationFactory(), + buildOptions, + request.getMultiCpus(), + request.getViewOptions().keepGoing); env.throwPendingException(); if (configurations.getTargetConfigurations().size() == 1) { @@ -389,14 +402,10 @@ public final class BuildTool { return !(request.getViewOptions().keepGoing && request.getExecutionOptions().testKeepGoing); } - @VisibleForTesting - protected final LoadingResult runLoadingPhase(final BuildRequest request, - final TargetValidator validator) - throws LoadingFailedException, TargetParsingException, InterruptedException, - AbruptExitException { + private final LoadingResult evaluateTargetPatterns( + final BuildRequest request, final TargetValidator validator) + throws LoadingFailedException, TargetParsingException, InterruptedException { Profiler.instance().markPhase(ProfilePhase.LOAD); - env.throwPendingException(); - initializeOutputFilter(request); final boolean keepGoing = request.getViewOptions().keepGoing; @@ -420,11 +429,9 @@ public final class BuildTool { request.getTargets(), env.getRelativeWorkingDirectory(), request.getLoadingOptions(), - runtime.createBuildOptions(request).getAllLabels(), keepGoing, request.shouldRunTests(), callback); - env.throwPendingException(); return result; } |