aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2015-04-22 20:44:35 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2015-04-23 09:19:26 +0000
commitbfb76a97dd54f49c0df2be5117301fdeb2c75654 (patch)
treeef86d1b82afc3ba3e60ed4651745f872acb45c51 /src/main/java/com/google/devtools
parent5a3078b5a35d5d9347690b45bf4c822a9d27c3e0 (diff)
Simplify AnalysisEnvironment creation.
Instead of computing flags based on the configuration in two places, we pass in the configuration and let the common code figure it out. Also change it so each CT only depends on the build info collection for its specific configuration. This should be safe, as the API doesn't allow passing a configuration in - it instead takes ruleContext.getConfiguration, which should be consistent with the dependency declarations in SkyframeBuildView in all cases. -- MOS_MIGRATED_REVID=91819844
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java16
3 files changed, 10 insertions, 14 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
index f1aa2f6eba..30358aca5b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
@@ -122,11 +122,10 @@ public final class AspectFunction implements SkyFunction {
throws AspectFunctionException {
SkyframeBuildView view = buildViewProvider.getSkyframeBuildView();
BuildConfiguration configuration = associatedTarget.getConfiguration();
- boolean extendedSanityChecks = configuration != null && configuration.extendedSanityChecks();
StoredEventHandler events = new StoredEventHandler();
CachingAnalysisEnvironment analysisEnvironment = view.createAnalysisEnvironment(
- key, false, extendedSanityChecks, events, env, true);
+ key, false, events, env, configuration);
if (env.valuesMissing()) {
return null;
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
index 35a9a11f1d..731f47985b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
@@ -464,15 +464,12 @@ final class ConfiguredTargetFunction implements SkyFunction {
Set<ConfigMatchingProvider> configConditions)
throws ConfiguredTargetFunctionException,
InterruptedException {
- boolean extendedSanityChecks = configuration != null && configuration.extendedSanityChecks();
-
StoredEventHandler events = new StoredEventHandler();
BuildConfiguration ownerConfig = (configuration == null)
? null : configuration.getArtifactOwnerConfiguration();
- boolean allowRegisteringActions = configuration == null || configuration.isActionsEnabled();
CachingAnalysisEnvironment analysisEnvironment = view.createAnalysisEnvironment(
new ConfiguredTargetKey(target.getLabel(), ownerConfig), false,
- extendedSanityChecks, events, env, allowRegisteringActions);
+ events, env, configuration);
if (env.valuesMissing()) {
return null;
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java
index b859f7b3a3..a8a4f108c7 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java
@@ -344,7 +344,7 @@ public final class SkyframeBuildView {
*/
// TODO(bazel-team): Allow analysis to return null so the value builder can exit and wait for a
// restart deps are not present.
- private boolean getWorkspaceStatusValues(Environment env) {
+ private boolean getWorkspaceStatusValues(Environment env, BuildConfiguration config) {
env.getValue(WorkspaceStatusValue.SKY_KEY);
Map<BuildInfoKey, BuildInfoFactory> buildInfoFactories =
PrecomputedValue.BUILD_INFO_FACTORIES.get(env);
@@ -359,10 +359,8 @@ public final class SkyframeBuildView {
// build-info.txt and build-changelist.txt.
List<SkyKey> depKeys = Lists.newArrayList();
for (BuildInfoKey key : buildInfoFactories.keySet()) {
- for (BuildConfiguration config : configurations.getAllConfigurations()) {
- if (buildInfoFactories.get(key).isEnabled(config)) {
- depKeys.add(BuildInfoCollectionValue.key(new BuildInfoKeyAndConfig(key, config)));
- }
+ if (buildInfoFactories.get(key).isEnabled(config)) {
+ depKeys.add(BuildInfoCollectionValue.key(new BuildInfoKeyAndConfig(key, config)));
}
}
env.getValues(depKeys);
@@ -372,11 +370,13 @@ public final class SkyframeBuildView {
/** Returns null if any build-info values are not ready. */
@Nullable
CachingAnalysisEnvironment createAnalysisEnvironment(ArtifactOwner owner,
- boolean isSystemEnv, boolean extendedSanityChecks, EventHandler eventHandler,
- Environment env, boolean allowRegisteringActions) {
- if (!getWorkspaceStatusValues(env)) {
+ boolean isSystemEnv, EventHandler eventHandler,
+ Environment env, BuildConfiguration config) {
+ if (config != null && !getWorkspaceStatusValues(env, config)) {
return null;
}
+ boolean extendedSanityChecks = config != null && config.extendedSanityChecks();
+ boolean allowRegisteringActions = config == null || config.isActionsEnabled();
return new CachingAnalysisEnvironment(
artifactFactory, owner, isSystemEnv, extendedSanityChecks, eventHandler, env,
allowRegisteringActions, binTools);