diff options
author | 2016-04-15 07:54:24 +0000 | |
---|---|---|
committer | 2016-04-15 11:11:08 +0000 | |
commit | f069d45bfa5f311ba1a908887df1826ec52c7a31 (patch) | |
tree | 5d27dce73d22f767fe02582caadd956c3310bc35 /src/main/java/com/google/devtools | |
parent | 0ea57e6983238cbc84ab62f8197912ccab215c93 (diff) |
Inject the BlazeDirectories in SkyframeExecutor.
The BlazeDirectories are also needed for loading the WORKSPACE file, so inject
them as part of preparePackageLoading rather than in createConfigurations,
which is too late.
--
MOS_MIGRATED_REVID=119931633
Diffstat (limited to 'src/main/java/com/google/devtools')
3 files changed, 5 insertions, 15 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 78e4e747f3..98add31fb7 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 @@ -178,7 +178,7 @@ public final class BuildTool { } configurations = env.getSkyframeExecutor().createConfigurations( env.getReporter(), runtime.getConfigurationFactory(), buildOptions, - env.getDirectories(), request.getMultiCpus(), request.getViewOptions().keepGoing); + request.getMultiCpus(), request.getViewOptions().keepGoing); env.getEventBus().post(new ConfigurationsCreatedEvent(configurations)); env.throwPendingException(); diff --git a/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java b/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java index 7e0b21adf2..0900086aca 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java @@ -335,7 +335,7 @@ public final class CommandEnvironment { throw new InvalidConfigurationException("Configuration creation failed"); } return getSkyframeExecutor().createConfigurations(reporter, runtime.getConfigurationFactory(), - buildOptions, getDirectories(), ImmutableSet.<String>of(), keepGoing); + buildOptions, ImmutableSet.<String>of(), keepGoing); } // TODO(ulfjack): Do we even need this method? With Skyframe, the config creation should diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java index ffe4091ceb..6049fd45ed 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java @@ -639,8 +639,9 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { PrecomputedValue.DEFAULT_VISIBILITY.set(injectable(), defaultVisibility); } - private void maybeInjectPrecomputedValuesForAnalysis() { + protected void maybeInjectPrecomputedValuesForAnalysis() { if (needToInjectPrecomputedValuesForAnalysis) { + PrecomputedValue.BLAZE_DIRECTORIES.set(injectable(), directories); injectBuildInfoFactories(); injectExtraPrecomputedValues(); needToInjectPrecomputedValuesForAnalysis = false; @@ -981,28 +982,17 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { this.skyframeActionExecutor.setActionLogBufferPathGenerator(actionLogBufferPathGenerator); } - @VisibleForTesting - public void setConfigurationDataForTesting(BlazeDirectories directories, - ConfigurationFactory configurationFactory) { - PrecomputedValue.BLAZE_DIRECTORIES.set(injectable(), directories); - this.configurationFactory.set(configurationFactory); - this.configurationFragments.set(ImmutableList.copyOf(configurationFactory.getFactories())); - } - /** * Asks the Skyframe evaluator to build the value for BuildConfigurationCollection and returns the * result. Also invalidates {@link PrecomputedValue#BLAZE_DIRECTORIES} if it has changed. */ public BuildConfigurationCollection createConfigurations( EventHandler eventHandler, ConfigurationFactory configurationFactory, - BuildOptions buildOptions, BlazeDirectories directories, Set<String> multiCpu, + BuildOptions buildOptions, Set<String> multiCpu, boolean keepGoing) throws InvalidConfigurationException, InterruptedException { this.configurationFactory.set(configurationFactory); this.configurationFragments.set(ImmutableList.copyOf(configurationFactory.getFactories())); - // TODO(bazel-team): find a way to use only BuildConfigurationKey instead of - // BlazeDirectories. - PrecomputedValue.BLAZE_DIRECTORIES.set(injectable(), directories); SkyKey skyKey = ConfigurationCollectionValue.key( buildOptions, ImmutableSortedSet.copyOf(multiCpu)); |