diff options
Diffstat (limited to 'src')
5 files changed, 17 insertions, 36 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java index ae209c9495..7915bcecb3 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java @@ -15,7 +15,6 @@ package com.google.devtools.build.lib.analysis; import com.google.common.cache.Cache; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; -import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection; import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.analysis.config.ConfigurationFactory; import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; @@ -52,16 +51,4 @@ public interface ConfigurationCollectionFactory { EventHandler errorEventListener, String mainRepositoryName) throws InvalidConfigurationException, InterruptedException; - - /** - * Returns the module the given configuration should use for choosing dynamic transitions. - * - * <p>We can presumably factor away this method once static global configurations are properly - * deprecated. But for now we retain the - * {@link com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection.Transitions} - * interface since that's the same place where static transition logic is determined and - * {@link BuildConfigurationCollection.Transitions#configurationHook} - * is still used. - */ - BuildConfigurationCollection.Transitions getDynamicTransitionLogic(BuildConfiguration config); } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java index a2f31e394a..4c6b78b345 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java @@ -1614,7 +1614,6 @@ public final class BuildConfiguration implements BuildEvent { options, mainRepositoryName.strippedName(), dynamicTransitionMapper); - newConfig.setConfigurationTransitions(this.transitions); return newConfig; } @@ -1711,8 +1710,11 @@ public final class BuildConfiguration implements BuildEvent { } /** - * Returns all configurations that can be reached from this configuration through any kind of - * configuration transition. + * For static configurations, returns all configurations that can be reached from this one through + * any kind of configuration transition. + * + * <p>For dynamic configurations, returns the current configuration (since configurations aren't + * reached through other configurations). */ public synchronized Collection<BuildConfiguration> getAllReachableConfigurations() { if (allReachableConfigurations == null) { @@ -1723,11 +1725,10 @@ public final class BuildConfiguration implements BuildEvent { return allReachableConfigurations; } - /** - * Returns all configurations that can be reached from this configuration through any kind of - * configuration transition. - */ private Set<BuildConfiguration> computeAllReachableConfigurations() { + if (useDynamicConfigurations()) { + return ImmutableSet.of(this); + } Set<BuildConfiguration> result = new LinkedHashSet<>(); Queue<BuildConfiguration> queue = new LinkedList<>(); queue.add(this); diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationCollection.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationCollection.java index 1137280bde..439cc3619c 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationCollection.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationCollection.java @@ -25,7 +25,6 @@ import com.google.devtools.build.lib.packages.Attribute.Transition; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.util.Preconditions; - import java.io.PrintStream; import java.io.Serializable; import java.util.Collection; @@ -98,8 +97,11 @@ public final class BuildConfigurationCollection { } /** - * Returns all configurations that can be reached from the target configuration through any kind - * of configuration transition. + * For static configurations, returns all configurations that can be reached from the target + * configurations through any kind of configuration transition. + * + * <p>For dynamic configurations, returns the target configurations (since configurations aren't + * reached through other configurations). */ public Collection<BuildConfiguration> getAllConfigurations() { Set<BuildConfiguration> result = new LinkedHashSet<>(); @@ -172,6 +174,10 @@ public final class BuildConfigurationCollection { public Transitions(BuildConfiguration configuration, Map<? extends Transition, ConfigurationHolder> transitionTable, ListMultimap<? extends SplitTransition<?>, BuildConfiguration> splitTransitionTable) { + Preconditions.checkState(!configuration.useDynamicConfigurations(), + "Dynamic configurations don't use this class and static configurations are going away. " + + "Anything added here is dead code. Contact Blaze developers if you need help."); + this.configuration = configuration; this.transitionTable = ImmutableMap.copyOf(transitionTable); // Do not remove <SplitTransition<?>, BuildConfiguration>: diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java index cf84854868..330e641499 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java @@ -18,7 +18,6 @@ import com.google.common.cache.Cache; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.HashBasedTable; import com.google.common.collect.ImmutableListMultimap; -import com.google.common.collect.ImmutableMap; import com.google.common.collect.ListMultimap; import com.google.common.collect.Table; import com.google.devtools.build.lib.analysis.ConfigurationCollectionFactory; @@ -108,12 +107,6 @@ public class BazelConfigurationCollection implements ConfigurationCollectionFact } } - @Override - public Transitions getDynamicTransitionLogic(BuildConfiguration config) { - return new BazelTransitions(config, ImmutableMap.<Transition, ConfigurationHolder>of(), - ImmutableListMultimap.<SplitTransition<?>, BuildConfiguration>of()); - } - /** * Gets the correct host configuration for this build. The behavior depends on the value of the * --distinct_host_configuration flag. diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java index be1354bf79..b6b6565dec 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java @@ -81,12 +81,6 @@ public class BuildConfigurationFunction implements SkyFunction { key.getBuildOptions(), workspaceNameValue.getName(), ruleClassProvider.getDynamicTransitionMapper()); - // Unlike static configurations, dynamic configurations don't need to embed transition logic - // in the configuration itself. However we still use this interface to supply - // BuildConfigurationCollection.Transitions.configurationHook. Once we remove that dependency - // we can remove the below completely. - config.setConfigurationTransitions(collectionFactory.getDynamicTransitionLogic(config)); - return new BuildConfigurationValue(config); } |