aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe
diff options
context:
space:
mode:
authorGravatar gregce <gregce@google.com>2017-08-17 23:23:47 +0200
committerGravatar Irina Iancu <elenairina@google.com>2017-08-18 09:02:10 +0200
commit5bae50aa8479096a2038cdf7b3a4cf744a84de6a (patch)
treef8c9932132c0fbfdcf80639230290f2e4d512a15 /src/main/java/com/google/devtools/build/lib/skyframe
parent03732205970679f757e6bb82f98c15607db17aa4 (diff)
Remove BuildConfiguration.useDynamicConfigurations.
This is always true. Part of the static config cleanup effort. PiperOrigin-RevId: 165628823
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java25
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java33
4 files changed, 18 insertions, 44 deletions
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 87de6cf5bf..214aa02380 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
@@ -148,10 +148,6 @@ public final class ConfiguredTargetFunction implements SkyFunction {
this.removeActionsAfterEvaluation = Preconditions.checkNotNull(removeActionsAfterEvaluation);
}
- private static boolean useDynamicConfigurations(BuildConfiguration config) {
- return config != null && config.useDynamicConfigurations();
- }
-
@Override
public SkyValue compute(SkyKey key, Environment env) throws ConfiguredTargetFunctionException,
InterruptedException {
@@ -197,7 +193,7 @@ public final class ConfiguredTargetFunction implements SkyFunction {
// associates the corresponding error with this target, as expected. Without this line,
// the first TransitiveTargetValue call happens on its dep (in trimConfigurations), so Bazel
// associates the error with the dep, which is misleading.
- if (useDynamicConfigurations(configuration) && configuration.trimConfigurations()
+ if (configuration != null && configuration.trimConfigurations()
&& env.getValue(TransitiveTargetValue.key(lc.getLabel())) == null) {
return null;
}
@@ -402,8 +398,8 @@ public final class ConfiguredTargetFunction implements SkyFunction {
}
// Trim each dep's configuration so it only includes the fragments needed by its transitive
- // closure (only dynamic configurations support this).
- if (useDynamicConfigurations(ctgValue.getConfiguration())) {
+ // closure.
+ if (ctgValue.getConfiguration() != null) {
depValueNames = getDynamicConfigurations(env, ctgValue, depValueNames, hostConfiguration,
ruleClassProvider);
// It's important that we don't use "if (env.missingValues()) { return null }" here (or
@@ -754,7 +750,6 @@ public final class ConfiguredTargetFunction implements SkyFunction {
@Nullable
private static Set<Class<? extends BuildConfiguration.Fragment>> getTransitiveFragments(
Environment env, Label dep, BuildConfiguration parentConfig) throws InterruptedException {
- Preconditions.checkArgument(parentConfig.useDynamicConfigurations());
if (!parentConfig.trimConfigurations()) {
return parentConfig.getAllFragments().keySet();
}
@@ -1067,20 +1062,16 @@ public final class ConfiguredTargetFunction implements SkyFunction {
return null;
}
-
// No need to get new configs from Skyframe - config_setting rules always use the current
// target's config.
// TODO(bazel-team): remove the need for this special transformation. We can probably do this by
// simply passing this through trimConfigurations.
- BuildConfiguration targetConfig = ctgValue.getConfiguration();
- if (useDynamicConfigurations(targetConfig)) {
- ImmutableList.Builder<Dependency> staticConfigs = ImmutableList.builder();
- for (Dependency dep : configValueNames) {
- staticConfigs.add(
- Dependency.withConfigurationAndAspects(dep.getLabel(), targetConfig, dep.getAspects()));
- }
- configValueNames = staticConfigs.build();
+ ImmutableList.Builder<Dependency> staticConfigs = ImmutableList.builder();
+ for (Dependency dep : configValueNames) {
+ staticConfigs.add(Dependency.withConfigurationAndAspects(dep.getLabel(),
+ ctgValue.getConfiguration(), dep.getAspects()));
}
+ configValueNames = staticConfigs.build();
Map<SkyKey, ConfiguredTarget> configValues = resolveConfiguredTargetDependencies(
env, configValueNames, transitivePackages, transitiveLoadingRootCauses);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java
index 77891647ec..b064b5b6ed 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java
@@ -108,7 +108,7 @@ public class PostConfiguredTargetFunction implements SkyFunction {
deps =
resolver.dependentNodeMap(
ctgValue, hostConfiguration, /*aspect=*/ null, configConditions);
- if (ct.getConfiguration() != null && ct.getConfiguration().useDynamicConfigurations()) {
+ if (ct.getConfiguration() != null) {
deps = ConfiguredTargetFunction.getDynamicConfigurations(env, ctgValue, deps,
hostConfiguration, ruleClassProvider);
}
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 4f1d96eaef..90773dc07d 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
@@ -512,7 +512,7 @@ public final class SkyframeBuildView {
* correct host configuration at the top-level.
*/
public BuildConfiguration getHostConfiguration(BuildConfiguration config) {
- if (config == null || !config.useDynamicConfigurations()) {
+ if (config == null) {
return topLevelHostConfiguration;
}
// TODO(bazel-team): have the fragment classes be those required by the consuming target's
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 f119eccc7f..f61ba9c54a 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
@@ -1571,8 +1571,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
}
/**
- * Returns a particular configured target. If dynamic configurations are active, applies the given
- * configuration transition.
+ * Returns a particular configured target after applying the given transition.
*/
@VisibleForTesting
@Nullable
@@ -1581,35 +1580,19 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
Label label,
BuildConfiguration configuration,
Attribute.Transition transition) {
-
- if (configuration != null && !configuration.useDynamicConfigurations()
- && transition != ConfigurationTransition.NONE) {
- // It's illegal to apply this transition over a statically configured build. But C++ LIPO
- // support works by applying a rule configurator for static configurations and a rule
- // transition applier for dynamic configurations. Dynamically configured builds skip
- // the configurator and this code makes statically configured builds skip the rule transition
- // applier.
- //
- // This will all get a lot simpler once static configurations are removed entirely.
- transition = ConfigurationTransition.NONE;
- }
-
if (memoizingEvaluator.getExistingValueForTesting(
PrecomputedValue.WORKSPACE_STATUS_KEY.getKeyForTesting()) == null) {
injectWorkspaceStatusData(label.getWorkspaceRoot());
}
- Dependency dep;
- if (configuration == null) {
- dep = Dependency.withNullConfiguration(label);
- } else if (configuration.useDynamicConfigurations()) {
- dep = Dependency.withTransitionAndAspects(label, transition, AspectCollection.EMPTY);
- } else {
- dep = Dependency.withConfiguration(label, configuration);
- }
-
return Iterables.getFirst(
- getConfiguredTargets(eventHandler, configuration, ImmutableList.of(dep), false),
+ getConfiguredTargets(
+ eventHandler,
+ configuration,
+ ImmutableList.of(configuration == null
+ ? Dependency.withNullConfiguration(label)
+ : Dependency.withTransitionAndAspects(label, transition, AspectCollection.EMPTY)),
+ false),
null);
}