aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2016-04-15 07:54:24 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-04-15 11:11:08 +0000
commitf069d45bfa5f311ba1a908887df1826ec52c7a31 (patch)
tree5d27dce73d22f767fe02582caadd956c3310bc35 /src
parent0ea57e6983238cbc84ab62f8197912ccab215c93 (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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java16
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java7
6 files changed, 10 insertions, 21 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));
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
index 8183f248d5..e116f0a441 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
@@ -274,7 +274,7 @@ public abstract class AnalysisTestCase extends FoundationTestCase {
BuildRequestOptions requestOptions = optionsParser.getOptions(BuildRequestOptions.class);
ImmutableSortedSet<String> multiCpu = ImmutableSortedSet.copyOf(requestOptions.multiCpus);
masterConfig = skyframeExecutor.createConfigurations(
- reporter, configurationFactory, buildOptions, directories, multiCpu, false);
+ reporter, configurationFactory, buildOptions, multiCpu, false);
analysisResult =
buildView.update(
loadingResult,
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index a690340f7c..d71b8ba786 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -285,7 +285,7 @@ public abstract class BuildViewTestCase extends FoundationTestCase {
ensureTargetsVisited(buildOptions.getAllLabels().values());
skyframeExecutor.invalidateConfigurationCollection();
return skyframeExecutor.createConfigurations(reporter, configurationFactory, buildOptions,
- directories, ImmutableSet.<String>of(), false);
+ ImmutableSet.<String>of(), false);
}
protected Target getTarget(String label)
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
index f7c83ff810..a973f8cbec 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
@@ -39,7 +39,6 @@ import com.google.devtools.build.lib.skyframe.DiffAwareness;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.SequencedSkyframeExecutor;
import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker;
-import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.testutil.FoundationTestCase;
import com.google.devtools.build.lib.testutil.TestConstants;
import com.google.devtools.build.lib.testutil.TestRuleClassProvider;
@@ -80,7 +79,7 @@ public abstract class ConfigurationTestCase extends FoundationTestCase {
public List<String> multiCpus;
}
- protected SkyframeExecutor skyframeExecutor;
+ protected SequencedSkyframeExecutor skyframeExecutor;
protected ConfigurationFactory configurationFactory;
protected Path workspace;
protected ImmutableList<Class<? extends FragmentOptions>> buildOptionClasses;
@@ -163,9 +162,9 @@ public abstract class ConfigurationTestCase extends FoundationTestCase {
parser.getOptions(TestOptions.class).multiCpus);
BuildOptions buildOptions = BuildOptions.of(buildOptionClasses, parser);
+ skyframeExecutor.handleDiffs(reporter);
BuildConfigurationCollection collection = skyframeExecutor.createConfigurations(
- reporter, configurationFactory, buildOptions,
- new BlazeDirectories(outputBase, outputBase, workspace), multiCpu, false);
+ reporter, configurationFactory, buildOptions, multiCpu, false);
return collection;
}