getCoverageOutputGenerat
@SerializationConstant @AutoCodec.VisibleForSerialization
public static final LabelLateBoundDefault> RUN_UNDER =
LabelLateBoundDefault.fromTargetConfiguration(
- BuildConfiguration.class,
+ BuildConfigurationValue.class,
null,
(rule, attributes, configuration) -> {
RunUnder runUnder = configuration.getRunUnder();
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index ea261a9ad2de5d..749a8d02d2e4a1 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
@@ -36,8 +36,8 @@
import com.google.devtools.build.lib.actions.ArtifactFactory;
import com.google.devtools.build.lib.actions.PackageRoots;
import com.google.devtools.build.lib.actions.TotalAndConfiguredTargetOnlyMetric;
-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.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.ConfigurationResolver.TopLevelTargetsAndConfigsResult;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
@@ -75,7 +75,7 @@
import com.google.devtools.build.lib.skyframe.AspectKeyCreator;
import com.google.devtools.build.lib.skyframe.AspectKeyCreator.AspectKey;
import com.google.devtools.build.lib.skyframe.AspectKeyCreator.TopLevelAspectsKey;
-import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.CoverageReportValue;
import com.google.devtools.build.lib.skyframe.PrepareAnalysisPhaseValue;
@@ -117,7 +117,7 @@
* build.
*
* Targets are implemented by the {@link Target} hierarchy in the {@code lib.packages} code.
- * Configurations are implemented by {@link BuildConfiguration}. The pair of these together is
+ * Configurations are implemented by {@link BuildConfigurationValue}. The pair of these together is
* represented by an instance of class {@link ConfiguredTarget}; this is the root of a hierarchy
* with different implementations for each kind of target: source file, derived file, rules, etc.
*
@@ -255,7 +255,7 @@ public AnalysisResult update(
new MakeEnvironmentEvent(
configurations.getTargetConfigurations().get(0).getMakeEnvironment()));
}
- for (BuildConfiguration targetConfig : configurations.getTargetConfigurations()) {
+ for (BuildConfigurationValue targetConfig : configurations.getTargetConfigurations()) {
eventBus.post(targetConfig.toBuildEvent());
}
@@ -263,7 +263,7 @@ public AnalysisResult update(
topLevelTargetsWithConfigsResult.getTargetsAndConfigs();
// Report the generated association of targets to configurations
- Multimap byLabel = ArrayListMultimap.create();
+ Multimap byLabel = ArrayListMultimap.create();
for (TargetAndConfiguration pair : topLevelTargetsWithConfigs) {
byLabel.put(pair.getLabel(), pair.getConfiguration());
}
@@ -332,12 +332,12 @@ public AnalysisResult update(
}
}
- Multimap, BuildConfiguration> aspectConfigurations =
+ Multimap, BuildConfigurationValue> aspectConfigurations =
ArrayListMultimap.create();
ImmutableList aspectClasses = aspectClassesBuilder.build();
ImmutableList.Builder aspectsKeys = ImmutableList.builder();
for (TargetAndConfiguration targetSpec : topLevelTargetsWithConfigs) {
- BuildConfiguration configuration = targetSpec.getConfiguration();
+ BuildConfigurationValue configuration = targetSpec.getConfiguration();
for (AspectClass aspectClass : aspectClasses) {
aspectConfigurations.put(
Pair.of(targetSpec.getLabel(), aspectClass.getName()), configuration);
@@ -360,13 +360,12 @@ public AnalysisResult update(
getArtifactFactory().noteAnalysisStarting();
SkyframeAnalysisResult skyframeAnalysisResult;
try {
- Supplier> configurationLookupSupplier =
+ Supplier> configurationLookupSupplier =
() -> {
- Map result = new HashMap<>();
+ Map result = new HashMap<>();
for (TargetAndConfiguration node : topLevelTargetsWithConfigs) {
if (node.getConfiguration() != null) {
- result.put(
- BuildConfigurationValue.key(node.getConfiguration()), node.getConfiguration());
+ result.put(node.getConfiguration().getKey(), node.getConfiguration());
}
}
return result;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java b/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
index aa53a09c8ec4e1..f43bbdf8689438 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
@@ -29,7 +29,7 @@
import com.google.devtools.build.lib.actions.MiddlemanFactory;
import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoCollection;
import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoKey;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.events.StoredEventHandler;
import com.google.devtools.build.lib.packages.Target;
@@ -379,7 +379,7 @@ private WorkspaceStatusValue getWorkspaceStatusValue() throws InterruptedExcepti
@Override
public ImmutableList getBuildInfo(
- boolean stamp, BuildInfoKey key, BuildConfiguration config) throws InterruptedException {
+ boolean stamp, BuildInfoKey key, BuildConfigurationValue config) throws InterruptedException {
BuildInfoCollectionValue collectionValue =
(BuildInfoCollectionValue) skyframeEnv.getValue(BuildInfoCollectionValue.key(key, config));
if (collectionValue == null) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationMakeVariableContext.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationMakeVariableContext.java
index 2bf73e6d8cd553..428e764dda7ff9 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationMakeVariableContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationMakeVariableContext.java
@@ -19,7 +19,7 @@
import com.google.common.collect.Streams;
import com.google.devtools.build.lib.analysis.MakeVariableSupplier.MapBackedMakeVariableSupplier;
import com.google.devtools.build.lib.analysis.MakeVariableSupplier.TemplateVariableInfoBackedMakeVariableSupplier;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.stringtemplate.ExpansionException;
import com.google.devtools.build.lib.analysis.stringtemplate.TemplateContext;
import com.google.devtools.build.lib.packages.Package;
@@ -68,14 +68,14 @@ private static ImmutableList getRuleTemplateVariableProvid
ImmutableList.of("toolchains", ":cc_toolchain", "$toolchains");
public ConfigurationMakeVariableContext(
- RuleContext ruleContext, Package pkg, BuildConfiguration configuration) {
+ RuleContext ruleContext, Package pkg, BuildConfigurationValue configuration) {
this(ruleContext, pkg, configuration, ImmutableList.of());
}
public ConfigurationMakeVariableContext(
RuleContext ruleContext,
Package pkg,
- BuildConfiguration configuration,
+ BuildConfigurationValue configuration,
Iterable extends MakeVariableSupplier> makeVariableSuppliers) {
this(
getRuleTemplateVariableProviders(ruleContext, DEFAULT_MAKE_VARIABLE_ATTRIBUTES),
@@ -87,7 +87,7 @@ public ConfigurationMakeVariableContext(
private ConfigurationMakeVariableContext(
ImmutableList ruleTemplateVariableProviders,
Package pkg,
- BuildConfiguration configuration,
+ BuildConfigurationValue configuration,
Iterable extends MakeVariableSupplier> extraMakeVariableSuppliers) {
this.allMakeVariableSuppliers =
ImmutableList.builder()
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationsResult.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationsResult.java
index 291673307705f1..666c109a51576d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationsResult.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationsResult.java
@@ -15,7 +15,7 @@
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.events.ExtendedEventHandler;
@@ -24,11 +24,11 @@
* registers if an error was recorded.
*/
public class ConfigurationsResult {
- private final Multimap configurations;
+ private final Multimap configurations;
private final boolean hasError;
private ConfigurationsResult(
- Multimap configurations, boolean hasError) {
+ Multimap configurations, boolean hasError) {
this.configurations = configurations;
this.hasError = hasError;
}
@@ -37,7 +37,7 @@ public boolean hasError() {
return hasError;
}
- public Multimap getConfigurationMap() {
+ public Multimap getConfigurationMap() {
return configurations;
}
@@ -47,11 +47,11 @@ public static Builder newBuilder() {
/** Builder for {@link ConfigurationsResult} */
public static class Builder {
- private final Multimap configurations =
+ private final Multimap configurations =
ArrayListMultimap.create();
private boolean hasError = false;
- public void put(DependencyKey key, BuildConfiguration value) {
+ public void put(DependencyKey key, BuildConfigurationValue value) {
configurations.put(key, value);
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
index 150a8d351664ea..bee3bc7be8655b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
@@ -29,7 +29,7 @@
import com.google.devtools.build.lib.analysis.RuleContext.PrerequisiteValidator;
import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoFactory;
import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoKey;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentClassSet;
@@ -158,7 +158,7 @@ public static final class Builder implements RuleDefinitionEnvironment {
private final ImmutableList.Builder symlinkDefinitions =
ImmutableList.builder();
private final Set reservedActionMnemonics = new TreeSet<>();
- private BuildConfiguration.ActionEnvironmentProvider actionEnvironmentProvider =
+ private BuildConfigurationValue.ActionEnvironmentProvider actionEnvironmentProvider =
(BuildOptions options) -> ActionEnvironment.EMPTY;
private ConstraintSemantics constraintSemantics =
new RuleContextConstraintSemantics();
@@ -327,7 +327,7 @@ public Builder addReservedActionMnemonic(String mnemonic) {
}
public Builder setActionEnvironmentProvider(
- BuildConfiguration.ActionEnvironmentProvider actionEnvironmentProvider) {
+ BuildConfigurationValue.ActionEnvironmentProvider actionEnvironmentProvider) {
this.actionEnvironmentProvider = actionEnvironmentProvider;
return this;
}
@@ -649,7 +649,7 @@ public Builder setNetworkAllowlistForTests(Label allowlist) {
private final ImmutableSet reservedActionMnemonics;
- private final BuildConfiguration.ActionEnvironmentProvider actionEnvironmentProvider;
+ private final BuildConfigurationValue.ActionEnvironmentProvider actionEnvironmentProvider;
private final ImmutableMap> configurationFragmentMap;
@@ -682,7 +682,7 @@ private ConfiguredRuleClassProvider(
ImmutableList starlarkBootstraps,
ImmutableList symlinkDefinitions,
ImmutableSet reservedActionMnemonics,
- BuildConfiguration.ActionEnvironmentProvider actionEnvironmentProvider,
+ BuildConfigurationValue.ActionEnvironmentProvider actionEnvironmentProvider,
ConstraintSemantics constraintSemantics,
ThirdPartyLicenseExistencePolicy thirdPartyLicenseExistencePolicy,
@Nullable Label networkAllowlistForTests) {
@@ -914,7 +914,7 @@ public ImmutableSet getReservedActionMnemonics() {
return reservedActionMnemonics;
}
- public BuildConfiguration.ActionEnvironmentProvider getActionEnvironmentProvider() {
+ public BuildConfigurationValue.ActionEnvironmentProvider getActionEnvironmentProvider() {
return actionEnvironmentProvider;
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java
index b01b14fbd9e6cd..c8c600ab4d557b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java
@@ -18,14 +18,15 @@
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
import javax.annotation.Nullable;
import net.starlark.java.eval.Structure;
/**
* A {@link ConfiguredTarget} is conceptually a {@link TransitiveInfoCollection} coupled with the
* {@link com.google.devtools.build.lib.packages.Target} and {@link
- * com.google.devtools.build.lib.analysis.config.BuildConfiguration} objects it was created from.
+ * com.google.devtools.build.lib.analysis.config.BuildConfigurationValue} objects it was created
+ * from.
*
* This interface is supposed to only be used in {@link BuildView} and above. In particular, rule
* implementations should not be able to access the {@link ConfiguredTarget} objects associated with
@@ -46,15 +47,16 @@ default String getConfigurationChecksum() {
}
/**
- * Returns the {@link BuildConfigurationValue.Key} naming the {@link
- * com.google.devtools.build.lib.analysis.config.BuildConfiguration} for which this configured
- * target is defined. Configuration is defined for all configured targets with exception of {@link
+ * Returns the {@link BuildConfigurationKey} naming the {@link
+ * com.google.devtools.build.lib.analysis.config.BuildConfigurationValue} for which this
+ * configured target is defined. Configuration is defined for all configured targets with
+ * exception of {@link
* com.google.devtools.build.lib.analysis.configuredtargets.InputFileConfiguredTarget} and {@link
* com.google.devtools.build.lib.analysis.configuredtargets.PackageGroupConfiguredTarget} for
* which it is always null .
*/
@Nullable
- BuildConfigurationValue.Key getConfigurationKey();
+ BuildConfigurationKey getConfigurationKey();
/** Returns keys for a legacy Starlark provider. */
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java
index d11739ae2b44b8..a4d52b32050ca2 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java
@@ -29,7 +29,7 @@
import com.google.devtools.build.lib.actions.FailAction;
import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.analysis.ExecGroupCollection.InvalidExecGroupException;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.ConfigConditions;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.RequiredFragmentsUtil;
@@ -174,8 +174,8 @@ public ConfiguredTarget createConfiguredTarget(
AnalysisEnvironment analysisEnvironment,
ArtifactFactory artifactFactory,
Target target,
- BuildConfiguration config,
- BuildConfiguration hostConfig,
+ BuildConfigurationValue config,
+ BuildConfigurationValue hostConfig,
ConfiguredTargetKey configuredTargetKey,
OrderedSetMultimap prerequisiteMap,
ConfigConditions configConditions,
@@ -275,8 +275,8 @@ public ConfiguredTarget createConfiguredTarget(
private ConfiguredTarget createRule(
AnalysisEnvironment env,
Rule rule,
- BuildConfiguration configuration,
- BuildConfiguration hostConfiguration,
+ BuildConfigurationValue configuration,
+ BuildConfigurationValue hostConfiguration,
ConfiguredTargetKey configuredTargetKey,
OrderedSetMultimap prerequisiteMap,
ConfigConditions configConditions,
@@ -484,8 +484,8 @@ public ConfiguredAspect createAspect(
OrderedSetMultimap prerequisiteMap,
ConfigConditions configConditions,
@Nullable ResolvedToolchainContext toolchainContext,
- BuildConfiguration aspectConfiguration,
- BuildConfiguration hostConfiguration,
+ BuildConfigurationValue aspectConfiguration,
+ BuildConfigurationValue hostConfiguration,
AspectKeyCreator.AspectKey aspectKey)
throws InterruptedException, ActionConflictException, InvalidExecGroupException {
RuleContext ruleContext =
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Dependency.java b/src/main/java/com/google/devtools/build/lib/analysis/Dependency.java
index f95810383ee03f..25f62574562f12 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/Dependency.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/Dependency.java
@@ -16,7 +16,7 @@
import com.google.auto.value.AutoValue;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.AspectDescriptor;
@@ -46,7 +46,7 @@ public abstract static class Builder {
public abstract Builder setLabel(Label label);
/** Sets the configuration intended for this dependency. */
- public abstract Builder setConfiguration(BuildConfiguration configuration);
+ public abstract Builder setConfiguration(BuildConfigurationValue configuration);
/** Explicitly set the configuration for this dependency to null. */
public Builder withNullConfiguration() {
@@ -92,7 +92,7 @@ public Dependency build() {
protected abstract Label getLabel();
@Nullable
- protected abstract BuildConfiguration getConfiguration();
+ protected abstract BuildConfigurationValue getConfiguration();
protected abstract AspectCollection getAspects();
@@ -120,7 +120,7 @@ public static Builder builder() {
/** Returns the explicit configuration intended for this dependency. */
@Nullable
- public abstract BuildConfiguration getConfiguration();
+ public abstract BuildConfigurationValue getConfiguration();
/**
* Returns the set of aspects which should be evaluated and combined with the configured target
@@ -132,7 +132,7 @@ public static Builder builder() {
/** Returns the configuration an aspect should be evaluated with. */
@Nullable
- public BuildConfiguration getAspectConfiguration(AspectDescriptor aspect) {
+ public BuildConfigurationValue getAspectConfiguration(AspectDescriptor aspect) {
return getConfiguration();
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
index 45554ad1ed5e44..6802a6e741b4d9 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
@@ -24,7 +24,7 @@
import com.google.devtools.build.lib.analysis.AspectCollection.AspectCycleOnPathException;
import com.google.devtools.build.lib.analysis.DependencyKind.AttributeDependencyKind;
import com.google.devtools.build.lib.analysis.DependencyKind.ToolchainDependencyKind;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
import com.google.devtools.build.lib.analysis.config.ExecutionTransitionFactory;
import com.google.devtools.build.lib.analysis.config.Fragment;
@@ -81,7 +81,7 @@ public abstract class DependencyResolver {
*/
// TODO(#10523): Remove this when the migration period for toolchain transitions has ended.
public static boolean shouldUseToolchainTransition(
- @Nullable BuildConfiguration configuration, Target target) {
+ @Nullable BuildConfigurationValue configuration, Target target) {
return shouldUseToolchainTransition(
configuration, target instanceof Rule ? (Rule) target : null);
}
@@ -92,7 +92,7 @@ public static boolean shouldUseToolchainTransition(
*/
// TODO(#10523): Remove this when the migration period for toolchain transitions has ended.
public static boolean shouldUseToolchainTransition(
- @Nullable BuildConfiguration configuration, @Nullable Rule rule) {
+ @Nullable BuildConfigurationValue configuration, @Nullable Rule rule) {
// Check whether the global incompatible change flag is set.
if (configuration != null) {
PlatformOptions platformOptions = configuration.getOptions().get(PlatformOptions.class);
@@ -181,7 +181,7 @@ public DependencyKey.Builder getDependencyKeyBuilder() {
*/
public final OrderedSetMultimap dependentNodeMap(
TargetAndConfiguration node,
- BuildConfiguration hostConfig,
+ BuildConfigurationValue hostConfig,
@Nullable Aspect aspect,
ImmutableMap configConditions,
@Nullable ToolchainCollection toolchainContexts,
@@ -238,7 +238,7 @@ public final OrderedSetMultimap dependentNodeMap(
*/
public final OrderedSetMultimap dependentNodeMap(
TargetAndConfiguration node,
- BuildConfiguration hostConfig,
+ BuildConfigurationValue hostConfig,
Iterable aspects,
ImmutableMap configConditions,
@Nullable ToolchainCollection toolchainContexts,
@@ -247,7 +247,7 @@ public final OrderedSetMultimap dependentNodeMap(
@Nullable TransitionFactory trimmingTransitionFactory)
throws Failure, InterruptedException, InconsistentAspectOrderException {
Target target = node.getTarget();
- BuildConfiguration config = node.getConfiguration();
+ BuildConfigurationValue config = node.getConfiguration();
OrderedSetMultimap outgoingLabels = OrderedSetMultimap.create();
// TODO(bazel-team): Figure out a way to implement the below (and partiallyResolveDependencies)
@@ -313,7 +313,7 @@ public final OrderedSetMultimap dependentNodeMap(
*/
private OrderedSetMultimap
partiallyResolveDependencies(
- BuildConfiguration config,
+ BuildConfigurationValue config,
OrderedSetMultimap outgoingLabels,
@Nullable Rule fromRule,
@Nullable ConfiguredAttributeMapper attributeMap,
@@ -461,7 +461,7 @@ public final OrderedSetMultimap dependentNodeMap(
private OrderedSetMultimap fullyResolveDependencies(
OrderedSetMultimap partiallyResolvedDeps,
Map targetMap,
- BuildConfiguration originalConfiguration,
+ BuildConfigurationValue originalConfiguration,
@Nullable TransitionFactory trimmingTransitionFactory)
throws InconsistentAspectOrderException {
OrderedSetMultimap outgoingEdges = OrderedSetMultimap.create();
@@ -514,14 +514,14 @@ public Location getLocation() {
private void visitRule(
TargetAndConfiguration node,
- BuildConfiguration hostConfig,
+ BuildConfigurationValue hostConfig,
Iterable aspects,
ConfiguredAttributeMapper attributeMap,
@Nullable ToolchainCollection toolchainContexts,
OrderedSetMultimap outgoingLabels)
throws Failure {
Preconditions.checkArgument(node.getTarget() instanceof Rule, node);
- BuildConfiguration ruleConfig = Preconditions.checkNotNull(node.getConfiguration(), node);
+ BuildConfigurationValue ruleConfig = Preconditions.checkNotNull(node.getConfiguration(), node);
Rule rule = (Rule) node.getTarget();
try {
@@ -589,8 +589,8 @@ private void resolveAttributes(
Rule rule,
ConfiguredAttributeMapper attributeMap,
Iterable aspects,
- BuildConfiguration ruleConfig,
- BuildConfiguration hostConfig) {
+ BuildConfigurationValue ruleConfig,
+ BuildConfigurationValue hostConfig) {
for (AttributeDependencyKind dependencyKind : getAttributes(rule, aspects)) {
Attribute attribute = dependencyKind.getAttribute();
if (!attribute.getCondition().apply(attributeMap)
@@ -634,8 +634,8 @@ private void resolveAttribute(
OrderedSetMultimap outgoingLabels,
Rule rule,
ConfiguredAttributeMapper attributeMap,
- BuildConfiguration ruleConfig,
- BuildConfiguration hostConfig) {
+ BuildConfigurationValue ruleConfig,
+ BuildConfigurationValue hostConfig) {
T attributeValue = null;
if (attribute.isImplicit()) {
// Since the attributes that come from aspects do not appear in attributeMap, we have to get
@@ -679,18 +679,18 @@ public static Object resolveLateBoundDefault(
Rule rule,
AttributeMap attributeMap,
Attribute attribute,
- BuildConfiguration ruleConfig,
- BuildConfiguration hostConfig) {
+ BuildConfigurationValue ruleConfig,
+ BuildConfigurationValue hostConfig) {
Preconditions.checkState(!attribute.getTransitionFactory().isSplit());
@SuppressWarnings("unchecked")
LateBoundDefault lateBoundDefault =
(LateBoundDefault) attribute.getLateBoundDefault();
- BuildConfiguration attributeConfig =
+ BuildConfigurationValue attributeConfig =
lateBoundDefault.useHostConfiguration() ? hostConfig : ruleConfig;
Class fragmentClass = lateBoundDefault.getFragmentClass();
// TODO(b/65746853): remove this when nothing uses it anymore
- if (BuildConfiguration.class.equals(fragmentClass)) {
+ if (BuildConfigurationValue.class.equals(fragmentClass)) {
return lateBoundDefault.resolve(rule, attributeMap, fragmentClass.cast(attributeConfig));
}
if (Void.class.equals(fragmentClass)) {
@@ -735,7 +735,7 @@ private void addExplicitDeps(
private static void collectPropagatingAspects(
ImmutableList aspectsPath,
String attributeName,
- BuildConfiguration config,
+ BuildConfigurationValue config,
@Nullable AspectClass aspectOwningAttribute,
ImmutableList.Builder allFilteredAspects) {
int aspectsNum = aspectsPath.size();
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/EmptyConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/EmptyConfiguredTarget.java
index 798af73ac412b3..811a73182b402e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/EmptyConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/EmptyConfiguredTarget.java
@@ -21,13 +21,13 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.Info;
import com.google.devtools.build.lib.packages.Provider;
-import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
import javax.annotation.Nullable;
/** A configured target that is empty. */
@Immutable
public class EmptyConfiguredTarget extends AbstractConfiguredTarget {
- public EmptyConfiguredTarget(Label label, BuildConfigurationValue.Key configurationKey) {
+ public EmptyConfiguredTarget(Label label, BuildConfigurationKey configurationKey) {
super(label, configurationKey, NestedSetBuilder.emptySet(Order.STABLE_ORDER));
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/EventHandlingErrorReporter.java b/src/main/java/com/google/devtools/build/lib/analysis/EventHandlingErrorReporter.java
index ebe3cc23677126..85f4006d270748 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/EventHandlingErrorReporter.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/EventHandlingErrorReporter.java
@@ -13,7 +13,7 @@
// limitations under the License.
package com.google.devtools.build.lib.analysis;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.packages.Attribute;
@@ -105,7 +105,7 @@ private String completeAttributeMessage(String attrName, String message) {
protected abstract Label getLabel();
- protected abstract BuildConfiguration getConfiguration();
+ protected abstract BuildConfigurationValue getConfiguration();
protected abstract Location getRuleLocation();
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ExtraActionUtils.java b/src/main/java/com/google/devtools/build/lib/analysis/ExtraActionUtils.java
index f8af04d9d03b0f..c846d3f8c63a95 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ExtraActionUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ExtraActionUtils.java
@@ -18,7 +18,7 @@
import com.google.common.collect.Multimap;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.extra.ExtraActionMapProvider;
import com.google.devtools.build.lib.analysis.extra.ExtraActionSpec;
import com.google.devtools.build.lib.cmdline.Label;
@@ -41,7 +41,7 @@ class ExtraActionUtils {
static ExtraActionArtifactsProvider createExtraActionProvider(
Set actionsWithoutExtraAction, RuleContext ruleContext)
throws InterruptedException {
- BuildConfiguration configuration = ruleContext.getConfiguration();
+ BuildConfigurationValue configuration = ruleContext.getConfiguration();
if (configuration.isToolConfiguration()) {
return ExtraActionArtifactsProvider.EMPTY;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/LicensesProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/LicensesProvider.java
index d6ced49133b863..dc4de8a03b8647 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/LicensesProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/LicensesProvider.java
@@ -26,7 +26,8 @@ public interface LicensesProvider extends TransitiveInfoProvider {
* The set of label - license associations in the transitive closure.
*
* Always returns an empty set if {@link
- * com.google.devtools.build.lib.analysis.config.BuildConfiguration#checkLicenses()} is false.
+ * com.google.devtools.build.lib.analysis.config.BuildConfigurationValue#checkLicenses()} is
+ * false.
*/
NestedSet getTransitiveLicenses();
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/LicensesProviderImpl.java b/src/main/java/com/google/devtools/build/lib/analysis/LicensesProviderImpl.java
index 36320ed5b2a336..98d087632ebe48 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/LicensesProviderImpl.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/LicensesProviderImpl.java
@@ -15,7 +15,7 @@
package com.google.devtools.build.lib.analysis;
import com.google.common.collect.ListMultimap;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
@@ -49,7 +49,7 @@ public static LicensesProvider of(RuleContext ruleContext) {
}
NestedSetBuilder builder = NestedSetBuilder.linkOrder();
- BuildConfiguration configuration = ruleContext.getConfiguration();
+ BuildConfigurationValue configuration = ruleContext.getConfiguration();
Rule rule = ruleContext.getRule();
AttributeMap attributes = ruleContext.attributes();
License toolOutputLicense = rule.getToolOutputLicense(attributes);
@@ -95,7 +95,8 @@ public static LicensesProvider of(RuleContext ruleContext) {
return new LicensesProviderImpl(builder.build(), outputLicenses);
}
- private static boolean useOutputLicenses(Attribute attribute, BuildConfiguration configuration) {
+ private static boolean useOutputLicenses(
+ Attribute attribute, BuildConfigurationValue configuration) {
return configuration.isToolConfiguration() || attribute.useOutputLicenses();
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetFactory.java
index 759110d93046fa..8fc5f9925879c4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetFactory.java
@@ -14,9 +14,10 @@
package com.google.devtools.build.lib.analysis;
import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.RuleClass;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
/**
* A shortcut class to the appropriate specialization of {@code RuleClass.ConfiguredTargetFactory}.
@@ -26,12 +27,11 @@
* Actions (i.e. commands that are run during the build) are created by configured targets (see
* {@link ConfiguredTarget}), which are a pair of a {@link
* com.google.devtools.build.lib.cmdline.Label} (e.g. //src:bazel
) and a {@link
- * com.google.devtools.build.lib.skyframe.BuildConfigurationValue.Key}, which is a key for a {@link
- * com.google.devtools.build.lib.analysis.config.BuildConfiguration}, which is a blob of data that
- * contains extra information about how the target should be built (for example, for which platform
- * or with which C++ preprocessor definitions). Accordingly, a target can give rise to multiple
- * configured targets, for example, if it needs to be built both for the host and the target
- * configuration.
+ * BuildConfigurationKey}, which is a key for a {@link BuildConfigurationValue}, which is a blob of
+ * data that contains extra information about how the target should be built (for example, for which
+ * platform or with which C++ preprocessor definitions). Accordingly, a target can give rise to
+ * multiple configured targets, for example, if it needs to be built both for the host and the
+ * target configuration.
*
*
The process of creating the appropriate {@link com.google.devtools.build.lib.actions.Action}s
* for a configured target is called "analysis". The analysis of a configured target is composed of
@@ -129,5 +129,5 @@ public interface RuleConfiguredTargetFactory
default void addRuleImplSpecificRequiredConfigFragments(
RequiredConfigFragmentsProvider.Builder requiredFragments,
AttributeMap attributes,
- BuildConfiguration configuration) {}
+ BuildConfigurationValue configuration) {}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index 88338bd7f1d696..7e8d23d970a8b7 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -46,7 +46,7 @@
import com.google.devtools.build.lib.analysis.ExecGroupCollection.InvalidExecGroupException;
import com.google.devtools.build.lib.analysis.actions.ActionConstructionContext;
import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoKey;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.ConfigConditions;
import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
import com.google.devtools.build.lib.analysis.config.Fragment;
@@ -158,7 +158,7 @@ void validate(
private final ImmutableSet enabledFeatures;
private final ImmutableSet disabledFeatures;
private final String ruleClassNameForLogging;
- private final BuildConfiguration hostConfiguration;
+ private final BuildConfigurationValue hostConfiguration;
private final ConfigurationFragmentPolicy configurationFragmentPolicy;
private final ConfiguredRuleClassProvider ruleClassProvider;
private final RuleErrorConsumer reporter;
@@ -362,7 +362,7 @@ public ImmutableMap getConfigConditions() {
}
/** Returns the host configuration for this rule. */
- public BuildConfiguration getHostConfiguration() {
+ public BuildConfigurationValue getHostConfiguration() {
return hostConfiguration;
}
@@ -456,8 +456,8 @@ private T getFragment(
String name,
String additionalErrorMessage,
ConfigurationTransition transition) {
- // TODO(bazel-team): The fragments can also be accessed directly through BuildConfiguration.
- // Can we lock that down somehow?
+ // TODO(bazel-team): The fragments can also be accessed directly through
+ // BuildConfigurationValue. Can we lock that down somehow?
Preconditions.checkArgument(
isLegalFragment(fragment, transition),
"%s has to declare '%s' as a required fragment in %s configuration in order to access"
@@ -512,7 +512,7 @@ public boolean isLegalFragment(Class fragment) {
return isLegalFragment(fragment, NoTransition.INSTANCE);
}
- private BuildConfiguration getConfiguration(ConfigurationTransition transition) {
+ private BuildConfigurationValue getConfiguration(ConfigurationTransition transition) {
return transition.isHostTransition() ? hostConfiguration : getConfiguration();
}
@@ -531,7 +531,7 @@ public ImmutableList getBuildInfo(BuildInfoKey key) throws Interrupted
public static ActionOwner createActionOwner(
Rule rule,
ImmutableList aspectDescriptors,
- BuildConfiguration configuration,
+ BuildConfigurationValue configuration,
ImmutableMap execProperties,
@Nullable PlatformInfo executionPlatform) {
return ActionOwner.create(
@@ -714,7 +714,7 @@ public Artifact.DerivedArtifact getPackageRelativeArtifact(
/**
* Same as {@link #getPackageRelativeArtifact(PathFragment, ArtifactRoot)} but includes the option
* option to use a content-based path for this artifact (see {@link
- * BuildConfiguration#useContentBasedOutputPaths()}).
+ * BuildConfigurationValue#useContentBasedOutputPaths()}).
*/
private Artifact.DerivedArtifact getPackageRelativeArtifact(
PathFragment relative, ArtifactRoot root, boolean contentBasedPath) {
@@ -732,7 +732,7 @@ public Artifact getPackageRelativeArtifact(String relative, ArtifactRoot root) {
/**
* Same as {@link #getPackageRelativeArtifact(String, ArtifactRoot)} but includes the option to
* use a content-based path for this artifact (see {@link
- * BuildConfiguration#useContentBasedOutputPaths()}).
+ * BuildConfigurationValue#useContentBasedOutputPaths()}).
*/
private Artifact getPackageRelativeArtifact(
String relative, ArtifactRoot root, boolean contentBasedPath) {
@@ -762,7 +762,7 @@ public Artifact.DerivedArtifact getDerivedArtifact(
/**
* Same as {@link #getDerivedArtifact(PathFragment, ArtifactRoot)} but includes the option to use
* a content-based path for this artifact (see {@link
- * BuildConfiguration#useContentBasedOutputPaths()}).
+ * BuildConfigurationValue#useContentBasedOutputPaths()}).
*/
public Artifact.DerivedArtifact getDerivedArtifact(
PathFragment rootRelativePath, ArtifactRoot root, boolean contentBasedPath) {
@@ -923,15 +923,16 @@ public ConfiguredTargetAndData getPrerequisiteConfiguredTargetAndData(String att
/**
* For a given attribute, returns all declared provider provided by targets of that attribute.
- * Each declared provider is keyed by the {@link BuildConfiguration} under which the provider was
- * created.
+ * Each declared provider is keyed by the {@link BuildConfigurationValue} under which the provider
+ * was created.
*/
public
- ImmutableListMultimap getPrerequisitesByConfiguration(
+ ImmutableListMultimap getPrerequisitesByConfiguration(
String attributeName, BuiltinProvider provider) {
checkAttributeIsDependency(attributeName);
List ctatCollection = getPrerequisiteConfiguredTargets(attributeName);
- ImmutableListMultimap.Builder result = ImmutableListMultimap.builder();
+ ImmutableListMultimap.Builder result =
+ ImmutableListMultimap.builder();
for (ConfiguredTargetAndData prerequisite : ctatCollection) {
C prerequisiteProvider = prerequisite.getConfiguredTarget().get(provider);
if (prerequisiteProvider != null) {
@@ -944,13 +945,13 @@ ImmutableListMultimap getPrerequisitesByConfiguration(
/**
* For a given attribute, returns all {@link TransitiveInfoCollection}s provided by targets of
* that attribute. Each {@link TransitiveInfoCollection} is keyed by the {@link
- * BuildConfiguration} under which the collection was created.
+ * BuildConfigurationValue} under which the collection was created.
*/
- public ImmutableListMultimap
+ public ImmutableListMultimap
getPrerequisitesByConfiguration(String attributeName) {
checkAttributeIsDependency(attributeName);
List ctatCollection = getPrerequisiteConfiguredTargets(attributeName);
- ImmutableListMultimap.Builder result =
+ ImmutableListMultimap.Builder result =
ImmutableListMultimap.builder();
for (ConfiguredTargetAndData prerequisite : ctatCollection) {
result.put(prerequisite.getConfiguration(), prerequisite.getConfiguredTarget());
@@ -1472,7 +1473,7 @@ public Artifact getImplicitOutputArtifact(ImplicitOutputsFunction function)
/**
* Same as {@link #getImplicitOutputArtifact(ImplicitOutputsFunction)} but includes the option to
* use a content-based path for this artifact (see {@link
- * BuildConfiguration#useContentBasedOutputPaths()}).
+ * BuildConfigurationValue#useContentBasedOutputPaths()}).
*/
public Artifact getImplicitOutputArtifact(
ImplicitOutputsFunction function, boolean contentBasedPath) throws InterruptedException {
@@ -1496,7 +1497,7 @@ public Artifact getImplicitOutputArtifact(String path) {
/**
* Same as {@link #getImplicitOutputArtifact(String)} but includes the option to use a a
* content-based path for this artifact (see {@link
- * BuildConfiguration#useContentBasedOutputPaths()}).
+ * BuildConfigurationValue#useContentBasedOutputPaths()}).
*/
// TODO(bazel-team): Consider removing contentBasedPath stuff, which is unused as of 18 months
// after its introduction in cl/252148134.
@@ -1630,10 +1631,10 @@ public static final class Builder implements RuleErrorConsumer {
private final AnalysisEnvironment env;
private final Target target;
private final ImmutableList aspects;
- private final BuildConfiguration configuration;
+ private final BuildConfigurationValue configuration;
private final RuleErrorConsumer reporter;
private ConfiguredRuleClassProvider ruleClassProvider;
- private BuildConfiguration hostConfiguration;
+ private BuildConfigurationValue hostConfiguration;
private ConfigurationFragmentPolicy configurationFragmentPolicy;
private ActionLookupKey actionOwnerSymbol;
private OrderedSetMultimap prerequisiteMap;
@@ -1651,7 +1652,7 @@ public Builder(
AnalysisEnvironment env,
Target target,
ImmutableList aspects,
- BuildConfiguration configuration) {
+ BuildConfigurationValue configuration) {
this.env = Preconditions.checkNotNull(env);
this.target = Preconditions.checkNotNull(target);
this.aspects = Preconditions.checkNotNull(aspects);
@@ -1739,7 +1740,7 @@ public Builder setRuleClassProvider(ConfiguredRuleClassProvider ruleClassProvide
return this;
}
- public Builder setHostConfiguration(BuildConfiguration hostConfiguration) {
+ public Builder setHostConfiguration(BuildConfigurationValue hostConfiguration) {
this.hostConfiguration = hostConfiguration;
return this;
}
@@ -2003,7 +2004,7 @@ private String getRuleClassNameForLogging() {
+ target.getAssociatedRule().getRuleClass();
}
- public BuildConfiguration getConfiguration() {
+ public BuildConfigurationValue getConfiguration() {
return configuration;
}
@@ -2192,12 +2193,12 @@ private void validateDirectPrerequisite(
private static final class ErrorReporter extends EventHandlingErrorReporter
implements RuleErrorConsumer {
private final Rule rule;
- private final BuildConfiguration configuration;
+ private final BuildConfigurationValue configuration;
ErrorReporter(
AnalysisEnvironment env,
Rule rule,
- BuildConfiguration configuration,
+ BuildConfigurationValue configuration,
String ruleClassNameForLogging) {
super(ruleClassNameForLogging, env);
this.rule = rule;
@@ -2229,7 +2230,7 @@ protected Label getLabel() {
}
@Override
- protected BuildConfiguration getConfiguration() {
+ protected BuildConfigurationValue getConfiguration() {
return configuration;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
index d0fe247bccfb05..6fcc0e66a7cbc2 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
@@ -23,7 +23,7 @@
import com.google.devtools.build.lib.analysis.SourceManifestAction.ManifestType;
import com.google.devtools.build.lib.analysis.actions.ActionConstructionContext;
import com.google.devtools.build.lib.analysis.actions.SymlinkTreeAction;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.RunUnder;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
@@ -362,7 +362,7 @@ private static Artifact createRunfilesAction(
RUNFILES_DIR_EXT);
PathFragment outputManifestPath = runfilesDir.getRelative(OUTPUT_MANIFEST_BASENAME);
- BuildConfiguration config = context.getConfiguration();
+ BuildConfigurationValue config = context.getConfiguration();
Artifact outputManifest =
context.getDerivedArtifact(outputManifestPath, context.getBinDirectory());
context
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ShToolchain.java b/src/main/java/com/google/devtools/build/lib/analysis/ShToolchain.java
index c785da410e2bae..1b22abb764b649 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ShToolchain.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ShToolchain.java
@@ -14,7 +14,7 @@
package com.google.devtools.build.lib.analysis;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.vfs.PathFragment;
/** Class to work with the shell toolchain, e.g. get the shell interpreter's path. */
@@ -25,7 +25,7 @@ public final class ShToolchain {
*
* This method checks the configuration's {@link ShellConfiguration} fragment.
*/
- public static PathFragment getPath(BuildConfiguration config) {
+ public static PathFragment getPath(BuildConfigurationValue config) {
PathFragment result = PathFragment.EMPTY_FRAGMENT;
ShellConfiguration configFragment =
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TargetAndConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/TargetAndConfiguration.java
index ac3d6fa10c5b8e..05bc361268118b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TargetAndConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TargetAndConfiguration.java
@@ -14,7 +14,7 @@
package com.google.devtools.build.lib.analysis;
import com.google.common.base.Preconditions;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.Target;
@@ -28,9 +28,9 @@
@Immutable
public final class TargetAndConfiguration {
private final Target target;
- @Nullable private final BuildConfiguration configuration;
+ @Nullable private final BuildConfigurationValue configuration;
- public TargetAndConfiguration(Target target, @Nullable BuildConfiguration configuration) {
+ public TargetAndConfiguration(Target target, @Nullable BuildConfigurationValue configuration) {
this.target = Preconditions.checkNotNull(target);
this.configuration = configuration;
}
@@ -75,7 +75,7 @@ public Label getLabel() {
}
@Nullable
- public BuildConfiguration getConfiguration() {
+ public BuildConfigurationValue getConfiguration() {
return configuration;
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java b/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java
index 80132f3467886c..9c54ee9abecf59 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java
@@ -28,7 +28,7 @@
import com.google.devtools.build.lib.actions.CompletionContext.ArtifactReceiver;
import com.google.devtools.build.lib.actions.EventReportingArtifacts;
import com.google.devtools.build.lib.analysis.TopLevelArtifactHelper.ArtifactsInOutputGroup;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget;
import com.google.devtools.build.lib.analysis.test.InstrumentedFilesInfo;
import com.google.devtools.build.lib.analysis.test.TestConfiguration;
@@ -161,7 +161,7 @@ private TargetCompleteEvent(
this.isTest = isTest;
this.announceTargetSummary = announceTargetSummary;
this.testTimeoutSeconds = isTest ? getTestTimeoutSeconds(targetAndData) : null;
- BuildConfiguration configuration = targetAndData.getConfiguration();
+ BuildConfigurationValue configuration = targetAndData.getConfiguration();
this.configEventId =
configuration != null ? configuration.getEventId() : BuildEventIdUtil.nullConfigurationId();
this.configurationEvent = configuration != null ? configuration.toBuildEvent() : null;
@@ -538,7 +538,7 @@ static ImmutableList toOutputGroupProtos(
* category and configuration.
*/
private static Long getTestTimeoutSeconds(ConfiguredTargetAndData targetAndData) {
- BuildConfiguration configuration = targetAndData.getConfiguration();
+ BuildConfigurationValue configuration = targetAndData.getConfiguration();
Rule associatedRule = targetAndData.getTarget().getAssociatedRule();
TestTimeout categoricalTimeout = TestTimeout.getTestTimeout(associatedRule);
return configuration
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TargetConfiguredEvent.java b/src/main/java/com/google/devtools/build/lib/analysis/TargetConfiguredEvent.java
index 26efabcc52dd65..114e0b8c8150bd 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TargetConfiguredEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TargetConfiguredEvent.java
@@ -15,7 +15,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.flogger.GoogleLogger;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.buildeventstream.BuildEvent;
import com.google.devtools.build.lib.buildeventstream.BuildEventContext;
import com.google.devtools.build.lib.buildeventstream.BuildEventIdUtil;
@@ -36,9 +36,9 @@
public class TargetConfiguredEvent implements BuildEventWithConfiguration {
private static final GoogleLogger logger = GoogleLogger.forEnclosingClass();
private final Target target;
- private final Collection configurations;
+ private final Collection configurations;
- TargetConfiguredEvent(Target target, Collection configurations) {
+ TargetConfiguredEvent(Target target, Collection configurations) {
this.configurations = configurations;
this.target = target;
}
@@ -46,7 +46,7 @@ public class TargetConfiguredEvent implements BuildEventWithConfiguration {
@Override
public Collection getConfigurations() {
ImmutableList.Builder builder = new ImmutableList.Builder<>();
- for (BuildConfiguration config : configurations) {
+ for (BuildConfigurationValue config : configurations) {
if (config != null) {
builder.add(config.toBuildEvent());
} else {
@@ -64,7 +64,7 @@ public BuildEventId getEventId() {
@Override
public Collection getChildrenEvents() {
ImmutableList.Builder childrenBuilder = ImmutableList.builder();
- for (BuildConfiguration config : configurations) {
+ for (BuildConfigurationValue config : configurations) {
if (config != null) {
childrenBuilder.add(
BuildEventIdUtil.targetCompleted(target.getLabel(), config.getEventId()));
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TargetContext.java b/src/main/java/com/google/devtools/build/lib/analysis/TargetContext.java
index e3042571341658..3227fb0940e707 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TargetContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TargetContext.java
@@ -19,12 +19,12 @@
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Multimaps;
import com.google.devtools.build.lib.actions.ActionKeyContext;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.packages.PackageSpecification.PackageGroupContents;
import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData;
import java.util.List;
import java.util.Optional;
@@ -44,7 +44,7 @@ public class TargetContext {
private final AnalysisEnvironment env;
private final Target target;
- private final BuildConfiguration configuration;
+ private final BuildConfigurationValue configuration;
/**
* This only contains prerequisites that are not declared in rule attributes, with the exception
@@ -63,7 +63,7 @@ public class TargetContext {
TargetContext(
AnalysisEnvironment env,
Target target,
- BuildConfiguration configuration,
+ BuildConfigurationValue configuration,
Set directPrerequisites,
NestedSet visibility) {
this.env = env;
@@ -96,12 +96,12 @@ public Label getLabel() {
* guaranteed to be non-null for rules and for output files.
*/
@Nullable
- public BuildConfiguration getConfiguration() {
+ public BuildConfigurationValue getConfiguration() {
return configuration;
}
- public BuildConfigurationValue.Key getConfigurationKey() {
- return BuildConfigurationValue.key(configuration);
+ public BuildConfigurationKey getConfigurationKey() {
+ return configuration.getKey();
}
public NestedSet getVisibility() {
@@ -115,7 +115,7 @@ public NestedSet getVisibility() {
*/
@Nullable
public TransitiveInfoCollection findDirectPrerequisite(
- Label label, Optional config) {
+ Label label, Optional config) {
if (directPrerequisites.containsKey(label)) {
List prerequisites = directPrerequisites.get(label);
// If the config is present, find the prereq with that configuration. Otherwise, return the
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Util.java b/src/main/java/com/google/devtools/build/lib/analysis/Util.java
index b2dda41b78e6f7..5484214321f263 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/Util.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/Util.java
@@ -17,7 +17,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Sets;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.compacthashset.CompactHashSet;
import com.google.devtools.build.lib.packages.AttributeMap;
@@ -100,8 +100,8 @@ public static ImmutableSet findImplicitDeps(RuleContext rul
if (toolchainContext != null) {
// This logic should stay up to date with the dep creation logic in
// DependencyResolver#partiallyResolveDependencies.
- BuildConfiguration targetConfiguration = ruleContext.getConfiguration();
- BuildConfiguration hostConfiguration = ruleContext.getHostConfiguration();
+ BuildConfigurationValue targetConfiguration = ruleContext.getConfiguration();
+ BuildConfigurationValue hostConfiguration = ruleContext.getHostConfiguration();
for (Label toolchain : toolchainContext.resolvedToolchainLabels()) {
if (DependencyResolver.shouldUseToolchainTransition(
targetConfiguration, ruleContext.getRule())) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/ActionConstructionContext.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/ActionConstructionContext.java
index 2461bb3b2d2d34..d284f62ba5f104 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/ActionConstructionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/ActionConstructionContext.java
@@ -21,7 +21,7 @@
import com.google.devtools.build.lib.actions.ArtifactRoot;
import com.google.devtools.build.lib.analysis.AnalysisEnvironment;
import com.google.devtools.build.lib.analysis.RuleErrorConsumer;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.platform.PlatformInfo;
import com.google.devtools.build.lib.packages.ImplicitOutputsFunction;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -58,8 +58,8 @@ public interface ActionConstructionContext {
/** Returns the action key context. */
ActionKeyContext getActionKeyContext();
- /** Returns the {@link BuildConfiguration} for which the given rule is analyzed. */
- BuildConfiguration getConfiguration();
+ /** Returns the {@link BuildConfigurationValue} for which the given rule is analyzed. */
+ BuildConfigurationValue getConfiguration();
/** The current analysis environment. */
AnalysisEnvironment getAnalysisEnvironment();
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
index c3568932536580..43b1a450be1bf1 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
@@ -60,7 +60,7 @@
import com.google.devtools.build.lib.actions.extra.SpawnInfo;
import com.google.devtools.build.lib.analysis.FilesToRunProvider;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.starlark.Args;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
@@ -696,7 +696,7 @@ public SpawnAction build(ActionConstructionContext context) {
@VisibleForTesting
@CheckReturnValue
- public SpawnAction build(ActionOwner owner, BuildConfiguration configuration) {
+ public SpawnAction build(ActionOwner owner, BuildConfigurationValue configuration) {
CommandLines.Builder result = CommandLines.builder();
if (executableArg != null) {
result.addSingleArgument(executableArg);
@@ -746,7 +746,7 @@ private SpawnAction buildSpawnAction(
ActionOwner owner,
CommandLines commandLines,
CommandLineLimits commandLineLimits,
- @Nullable BuildConfiguration configuration,
+ @Nullable BuildConfigurationValue configuration,
ActionEnvironment env) {
NestedSet tools = toolsBuilder.build();
@@ -796,7 +796,7 @@ protected SpawnAction createSpawnAction(
CommandLineLimits commandLineLimits,
boolean isShellCommand,
ActionEnvironment env,
- @Nullable BuildConfiguration configuration,
+ @Nullable BuildConfigurationValue configuration,
ImmutableMap executionInfo,
CharSequence progressMessage,
RunfilesSupplier runfilesSupplier,
@@ -983,7 +983,7 @@ public Builder setExecutionInfo(Map info) {
* action and its value will be "baz", or whatever the corresponding {@code --client_env} flag
* specified, respectively.
*
- * @see {@link BuildConfiguration#getLocalShellEnvironment}
+ * @see {@link BuildConfigurationValue#getLocalShellEnvironment}
*/
public Builder useDefaultShellEnvironment() {
this.environment = null;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/StarlarkAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/StarlarkAction.java
index 867f2ddbbe216a..5c45c24b656f3b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/StarlarkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/StarlarkAction.java
@@ -38,7 +38,7 @@
import com.google.devtools.build.lib.actions.Spawn;
import com.google.devtools.build.lib.actions.SpawnResult;
import com.google.devtools.build.lib.actions.UserExecException;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
@@ -372,7 +372,7 @@ protected SpawnAction createSpawnAction(
CommandLineLimits commandLineLimits,
boolean isShellCommand,
ActionEnvironment env,
- @Nullable BuildConfiguration configuration,
+ @Nullable BuildConfigurationValue configuration,
ImmutableMap executionInfo,
CharSequence progressMessage,
RunfilesSupplier runfilesSupplier,
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java
index 645e1f98dde648..14a06ca1511f5c 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java
@@ -24,7 +24,7 @@
import com.google.devtools.build.lib.actions.ActionResult;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.Runfiles;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
@@ -63,7 +63,7 @@ public final class SymlinkTreeAction extends AbstractAction {
*/
public SymlinkTreeAction(
ActionOwner owner,
- BuildConfiguration config,
+ BuildConfigurationValue config,
Artifact inputManifest,
@Nullable Runfiles runfiles,
Artifact outputManifest,
@@ -82,8 +82,8 @@ public SymlinkTreeAction(
/**
* Creates SymlinkTreeAction instance. Prefer the constructor that takes a {@link
- * BuildConfiguration} instance; it is less likely to require changes in the future if we add more
- * command-line flags that affect this action.
+ * BuildConfigurationValue} instance; it is less likely to require changes in the future if we add
+ * more command-line flags that affect this action.
*
* @param owner action owner
* @param inputManifest the input runfiles manifest
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/buildinfo/BuildInfoFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/buildinfo/BuildInfoFactory.java
index 2849126ff31fce..117c61a2034650 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/buildinfo/BuildInfoFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/buildinfo/BuildInfoFactory.java
@@ -15,7 +15,7 @@
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ArtifactRoot;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.io.Serializable;
@@ -52,7 +52,7 @@ Artifact getBuildInfoArtifact(
/** Create actions and artifacts for language-specific build-info files. */
BuildInfoCollection create(
BuildInfoContext context,
- BuildConfiguration config,
+ BuildConfigurationValue config,
Artifact buildInfo,
Artifact buildChangelist);
@@ -65,5 +65,5 @@ BuildInfoCollection create(
* Returns false if this build info factory is disabled based on the configuration (usually by
* checking if all required configuration fragments are present).
*/
- boolean isEnabled(BuildConfiguration config);
+ boolean isEnabled(BuildConfigurationValue config);
}
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 7d1fbe2a1e4fbc..cf2539cc5c0969 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
@@ -30,20 +30,21 @@
*/
@ThreadSafe
public final class BuildConfigurationCollection {
- private final ImmutableList targetConfigurations;
- private final BuildConfiguration hostConfiguration;
+ private final ImmutableList targetConfigurations;
+ private final BuildConfigurationValue hostConfiguration;
public BuildConfigurationCollection(
- ImmutableList targetConfigurations, BuildConfiguration hostConfiguration)
+ ImmutableList targetConfigurations,
+ BuildConfigurationValue hostConfiguration)
throws InvalidConfigurationException {
this.targetConfigurations = targetConfigurations;
this.hostConfiguration = hostConfiguration;
// Except for the host configuration (which may be identical across target configs), the other
// configurations must all have different cache keys or we will end up with problems.
- HashMap cacheKeyConflictDetector = new HashMap<>();
- for (BuildConfiguration config : targetConfigurations) {
- BuildConfiguration old = cacheKeyConflictDetector.put(config.checksum(), config);
+ HashMap cacheKeyConflictDetector = new HashMap<>();
+ for (BuildConfigurationValue config : targetConfigurations) {
+ BuildConfigurationValue old = cacheKeyConflictDetector.put(config.checksum(), config);
if (old != null) {
throw new InvalidConfigurationException(
"Conflicting configurations: " + config + " & " + old, Code.CONFLICTING_CONFIGURATIONS);
@@ -51,7 +52,7 @@ public BuildConfigurationCollection(
}
}
- public ImmutableList getTargetConfigurations() {
+ public ImmutableList getTargetConfigurations() {
return targetConfigurations;
}
@@ -62,7 +63,7 @@ public ImmutableList getTargetConfigurations() {
* entire collection. This may not be true in the future and more flexible interfaces will likely
* supplant this interface anyway.
*/
- public BuildConfiguration getHostConfiguration() {
+ public BuildConfigurationValue getHostConfiguration() {
return hostConfiguration;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationOptionDetails.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationOptionDetails.java
index 2a5d4354c1826b..2e491d095ae8a2 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationOptionDetails.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationOptionDetails.java
@@ -15,19 +15,19 @@
package com.google.devtools.build.lib.analysis.config;
/**
- * Retrieves {@link TransitiveOptionDetails} from {@link BuildConfiguration} instances.
+ * Retrieves {@link TransitiveOptionDetails} from {@link BuildConfigurationValue} instances.
*
* This class's existence allows for the use of Blaze visibility to limit access to option data
* to only the configuration-specific rules which need to access or manipulate the configuration in
* such a meta way - in most cases, there should be no need to use this class. Instead, access
- * desired configuration fragments via {@link BuildConfiguration#getFragment(Class)}.
+ * desired configuration fragments via {@link BuildConfigurationValue#getFragment(Class)}.
*/
public class BuildConfigurationOptionDetails {
/** Utility class - no need to instantiate. */
private BuildConfigurationOptionDetails() {}
- public static TransitiveOptionDetails get(BuildConfiguration configuration) {
+ public static TransitiveOptionDetails get(BuildConfigurationValue configuration) {
return configuration.getTransitiveOptionDetails();
}
}
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/BuildConfigurationValue.java
similarity index 90%
rename from src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
rename to src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationValue.java
index 578af01bb76de3..85e4556aa59084 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/BuildConfigurationValue.java
@@ -35,15 +35,16 @@
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.events.EventHandler;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.starlarkbuildapi.BuildConfigurationApi;
import com.google.devtools.build.lib.util.OS;
import com.google.devtools.build.lib.util.RegexFilter;
import com.google.devtools.build.lib.vfs.PathFragment;
+import com.google.devtools.build.skyframe.SkyValue;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
import java.util.Set;
import java.util.TreeMap;
import java.util.function.Supplier;
@@ -51,28 +52,26 @@
import net.starlark.java.annot.StarlarkBuiltin;
/**
- * Instances of BuildConfiguration represent a collection of context information which may affect a
- * build (for example: the target platform for compilation, or whether or not debug tables are
- * required). In fact, all "environmental" information (e.g. from the tool's command-line, as
- * opposed to the BUILD file) that can affect the output of any build tool should be explicitly
- * represented in the BuildConfiguration instance.
+ * Represents a collection of context information which may affect a build (for example: the target
+ * platform for compilation, or whether or not debug tables are required). In fact, all
+ * "environmental" information (e.g. from the tool's command-line, as opposed to the BUILD file)
+ * that can affect the output of any build tool should be explicitly represented in the {@code
+ * BuildConfigurationValue} instance.
*
*
A single build may require building tools to run on a variety of platforms: when compiling a
* server application for production, we must build the build tools (like compilers) to run on the
* host platform, but cross-compile the application for the production environment.
*
- *
There is always at least one BuildConfiguration instance in any build: the one representing
- * the host platform. Additional instances may be created, in a cross-compilation build, for
- * example.
+ *
There is always at least one {@code BuildConfigurationValue} instance in any build: the one
+ * representing the host platform. Additional instances may be created, in a cross-compilation
+ * build, for example.
*
- *
Instances of BuildConfiguration are canonical:
+ *
Instances of {@code BuildConfigurationValue} are canonical:
*
*
c1.equals(c2) <=> c1==c2.
*/
-// TODO(janakr): If overhead of fragments class names is too high, add constructor that just takes
-// fragments and gets names from them.
@AutoCodec
-public class BuildConfiguration implements BuildConfigurationApi {
+public class BuildConfigurationValue implements BuildConfigurationApi, SkyValue {
private static final Interner, Fragment>>
fragmentsInterner = BlazeInterners.newWeakInterner();
@@ -109,8 +108,6 @@ public interface ActionEnvironmentProvider {
private final ImmutableMap commandLineBuildVariables;
- private final int hashCode; // We can precompute the hash code as all its inputs are immutable.
-
/** Data for introspecting the options used by this configuration. */
private final TransitiveOptionDetails transitiveOptionDetails;
@@ -119,34 +116,8 @@ public interface ActionEnvironmentProvider {
private final boolean siblingRepositoryLayout;
/**
- * Returns {@code true} if this configuration is semantically equal to the other, including
- * checking that both have the same sets of fragments and options.
- */
- @Override
- public boolean equals(Object other) {
- if (this == other) {
- return true;
- }
- if (!(other instanceof BuildConfiguration)) {
- return false;
- }
- BuildConfiguration otherConfig = (BuildConfiguration) other;
- return fragments.values().asList().equals(otherConfig.fragments.values().asList())
- && buildOptions.equals(otherConfig.buildOptions);
- }
-
- private int computeHashCode() {
- return Objects.hash(fragments, buildOptions.getNativeOptions());
- }
-
- @Override
- public int hashCode() {
- return hashCode;
- }
-
- /**
- * Validates the options for this BuildConfiguration. Issues warnings for the use of deprecated
- * options, and warnings or errors for any option settings that conflict.
+ * Validates the options for this BuildConfigurationValue. Issues warnings for the use of
+ * deprecated options, and warnings or errors for any option settings that conflict.
*/
public void reportInvalidOptions(EventHandler reporter) {
for (Fragment fragment : fragments.values()) {
@@ -168,7 +139,7 @@ private ActionEnvironment setupTestEnvironment() {
return ActionEnvironment.split(testEnv);
}
- public BuildConfiguration(
+ public BuildConfigurationValue(
BlazeDirectories directories,
ImmutableMap, Fragment> fragments,
FragmentClassSet fragmentClassSet,
@@ -215,25 +186,18 @@ public BuildConfiguration(
TransitiveOptionDetails.forOptions(
buildOptions.getNativeOptions(), buildOptions.getStarlarkOptions());
- ImmutableMap.Builder globalMakeEnvBuilder = ImmutableMap.builder();
-
+ // These should be documented in the build encyclopedia.
// TODO(configurability-team): Deprecate TARGET_CPU in favor of platforms.
- globalMakeEnvBuilder.put("TARGET_CPU", options.cpu);
- globalMakeEnvBuilder.put("COMPILATION_MODE", options.compilationMode.toString());
-
- /*
- * Attention! Document these in the build-encyclopedia
- */
- // the bin directory and the genfiles directory
- // These variables will be used on Windows as well, so we need to make sure
- // that paths use the correct system file-separator.
- globalMakeEnvBuilder.put(
- "BINDIR", getBinDirectory(RepositoryName.MAIN).getExecPath().getPathString());
- globalMakeEnvBuilder.put(
- "GENDIR", getGenfilesDirectory(RepositoryName.MAIN).getExecPath().getPathString());
- globalMakeEnv = globalMakeEnvBuilder.build();
-
- hashCode = computeHashCode();
+ globalMakeEnv =
+ ImmutableMap.of(
+ "TARGET_CPU",
+ options.cpu,
+ "COMPILATION_MODE",
+ options.compilationMode.toString(),
+ "BINDIR",
+ getBinDirectory(RepositoryName.MAIN).getExecPathString(),
+ "GENDIR",
+ getGenfilesDirectory(RepositoryName.MAIN).getExecPathString());
this.reservedActionMnemonics = reservedActionMnemonics;
this.buildEventSupplier = Suppliers.memoize(this::createBuildEvent);
@@ -252,6 +216,17 @@ private ImmutableMap> buildIndexOfStarlarkVisi
return builder.build();
}
+ /**
+ * Returns the {@link BuildConfigurationKey} for this configuration.
+ *
+ * Note that this method does not apply a platform mapping. It is assumed that this
+ * configuration was created with a platform mapping and thus its key does not need to be mapped
+ * again.
+ */
+ public BuildConfigurationKey getKey() {
+ return BuildConfigurationKey.withoutPlatformMapping(fragmentClassSet, buildOptions);
+ }
+
/**
* Retrieves the {@link TransitiveOptionDetails} containing data on this configuration's options.
*
@@ -396,8 +371,8 @@ public String getMainRepositoryName() {
/**
* Returns the configuration-dependent string for this configuration. This is also the name of the
- * configuration's base output directory unless {@link CoreOptions#outputDirectoryName} overrides
- * it.
+ * configuration's base output directory unless {@link #isHostConfiguration} is {@code true}, in
+ * which case the output directory is named {@code host}.
*/
public String getMnemonic() {
return outputDirectories.getMnemonic();
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java
index e5b25ce7487e73..5d7184d1b8134e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java
@@ -44,7 +44,7 @@
import com.google.devtools.build.lib.packages.AttributeTransitionData;
import com.google.devtools.build.lib.packages.ConfiguredAttributeMapper;
import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
import com.google.devtools.build.lib.skyframe.ConfiguredValueCreationException;
import com.google.devtools.build.lib.skyframe.PackageValue;
import com.google.devtools.build.lib.skyframe.PlatformMappingValue;
@@ -87,13 +87,13 @@ public final class ConfigurationResolver {
@VisibleForTesting
public static final Comparator SPLIT_DEP_ORDERING =
Comparator.comparing(
- Functions.compose(BuildConfiguration::getMnemonic, Dependency::getConfiguration))
+ Functions.compose(BuildConfigurationValue::getMnemonic, Dependency::getConfiguration))
.thenComparing(
- Functions.compose(BuildConfiguration::checksum, Dependency::getConfiguration));
+ Functions.compose(BuildConfigurationValue::checksum, Dependency::getConfiguration));
private final SkyFunction.Environment env;
private final TargetAndConfiguration ctgValue;
- private final BuildConfiguration hostConfiguration;
+ private final BuildConfigurationValue hostConfiguration;
private final ImmutableMap configConditions;
/** The key for {@link #starlarkTransitionCache}. */
@@ -172,7 +172,7 @@ private static class StarlarkTransitionCacheValue {
public ConfigurationResolver(
SkyFunction.Environment env,
TargetAndConfiguration ctgValue,
- BuildConfiguration hostConfiguration,
+ BuildConfigurationValue hostConfiguration,
ImmutableMap configConditions) {
this.env = env;
this.ctgValue = ctgValue;
@@ -180,7 +180,7 @@ public ConfigurationResolver(
this.configConditions = configConditions;
}
- private BuildConfiguration getCurrentConfiguration() {
+ private BuildConfigurationValue getCurrentConfiguration() {
return ctgValue.getConfiguration();
}
@@ -209,8 +209,8 @@ private BuildConfiguration getCurrentConfiguration() {
*
* @param dependencyKeys the transition requests for each dep and each dependency kind
* @return a mapping from each dependency kind in the source target to the {@link
- * BuildConfiguration}s and {@link Label}s for the deps under that dependency kind . Returns
- * null if not all Skyframe dependencies are available.
+ * BuildConfigurationValue}s and {@link Label}s for the deps under that dependency kind .
+ * Returns null if not all Skyframe dependencies are available.
*/
@Nullable
public OrderedSetMultimap resolveConfigurations(
@@ -334,14 +334,14 @@ private ImmutableList resolveGenericTransition(
return null; // Need platform mappings from Skyframe.
}
- Map configurationKeys = new HashMap<>();
+ Map configurationKeys = new HashMap<>();
try {
for (Map.Entry optionsEntry : toOptions.entrySet()) {
String transitionKey = optionsEntry.getKey();
- BuildConfigurationValue.Key buildConfigurationValueKey =
- BuildConfigurationValue.keyWithPlatformMapping(
+ BuildConfigurationKey buildConfigurationKey =
+ BuildConfigurationKey.withPlatformMapping(
platformMappingValue, depFragments, optionsEntry.getValue());
- configurationKeys.put(transitionKey, buildConfigurationValueKey);
+ configurationKeys.put(transitionKey, buildConfigurationKey);
}
} catch (OptionsParsingException e) {
throw new ConfiguredValueCreationException(ctgValue, e.getMessage());
@@ -351,15 +351,14 @@ private ImmutableList resolveGenericTransition(
env.getValuesOrThrow(configurationKeys.values(), InvalidConfigurationException.class);
List dependencies = new ArrayList<>();
try {
- for (Map.Entry entry : configurationKeys.entrySet()) {
+ for (Map.Entry entry : configurationKeys.entrySet()) {
String transitionKey = entry.getKey();
ValueOrException valueOrException =
depConfigValues.get(entry.getValue());
if (valueOrException.get() == null) {
continue;
}
- BuildConfiguration configuration =
- ((BuildConfigurationValue) valueOrException.get()).getConfiguration();
+ BuildConfigurationValue configuration = (BuildConfigurationValue) valueOrException.get();
if (configuration != null) {
Dependency resolvedDep =
dependencyBuilder
@@ -563,7 +562,7 @@ private static Map applyStarlarkTransition(
// Keep this in sync with {@link PrepareAnalysisPhaseFunction#resolveConfigurations}.
public static TopLevelTargetsAndConfigsResult getConfigurationsFromExecutor(
Iterable defaultContext,
- Multimap targetsToEvaluate,
+ Multimap targetsToEvaluate,
ExtendedEventHandler eventHandler,
ConfigurationsCollector configurationsCollector)
throws InvalidConfigurationException, InterruptedException {
@@ -579,12 +578,12 @@ public static TopLevelTargetsAndConfigsResult getConfigurationsFromExecutor(
new LinkedHashMap<>();
boolean hasError = false;
if (!targetsToEvaluate.isEmpty()) {
- for (BuildConfiguration fromConfig : targetsToEvaluate.keySet()) {
+ for (BuildConfigurationValue fromConfig : targetsToEvaluate.keySet()) {
ConfigurationsResult configurationsResult =
configurationsCollector.getConfigurations(
eventHandler, fromConfig.getOptions(), targetsToEvaluate.get(fromConfig));
hasError |= configurationsResult.hasError();
- for (Map.Entry evaluatedTarget :
+ for (Map.Entry evaluatedTarget :
configurationsResult.getConfigurationMap().entries()) {
Target target = labelsToTargets.get(evaluatedTarget.getKey().getLabel());
successfullyEvaluatedTargets.put(
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
index 744acfa7cb7890..85185e031c9789 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
@@ -39,14 +39,14 @@
import java.util.Map;
/**
- * Core options affecting a {@link BuildConfiguration} that don't belong in domain-specific {@link
- * FragmentOptions}. All options defined here should be universal in that they affect configuration
- * regardless of which languages a build uses. In other words, this should only contain options that
- * aren't suitable for Starlark configuration.
+ * Core options affecting a {@link BuildConfigurationValue} that don't belong in domain-specific
+ * {@link FragmentOptions}. All options defined here should be universal in that they affect
+ * configuration regardless of which languages a build uses. In other words, this should only
+ * contain options that aren't suitable for Starlark configuration.
*
* (Note: any client that creates a view will also need to declare BuildView.Options, which
* affect the mechanism of view construction, even if they don't affect the value of the
- * BuildConfiguration instances.)
+ * BuildConfigurationValue instances.)
*
*
IMPORTANT: when adding new options, be sure to consider whether those values should be
* propagated to the host configuration or not.
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/OutputDirectories.java b/src/main/java/com/google/devtools/build/lib/analysis/config/OutputDirectories.java
index ddd7fec1f56228..86d54aee6eabb7 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/OutputDirectories.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/OutputDirectories.java
@@ -48,7 +48,7 @@ public class OutputDirectories {
* Directories in the output tree.
*
*
The computation of the output directory should be a non-injective mapping from
- * BuildConfiguration instances to strings. The result should identify the aspects of the
+ * BuildConfigurationValue instances to strings. The result should identify the aspects of the
* configuration that should be reflected in the output file names. Furthermore the returned
* string must not contain shell metacharacters.
*
@@ -368,4 +368,3 @@ public static class InvalidMnemonicException extends InvalidConfigurationExcepti
}
}
}
-
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/RequiredFragmentsUtil.java b/src/main/java/com/google/devtools/build/lib/analysis/config/RequiredFragmentsUtil.java
index fd5ac26e1e1374..7d0a1bf9bff47a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/RequiredFragmentsUtil.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/RequiredFragmentsUtil.java
@@ -82,7 +82,7 @@ public final class RequiredFragmentsUtil {
@Nullable
public static RequiredConfigFragmentsProvider getRuleRequiredFragmentsIfEnabled(
Rule target,
- BuildConfiguration configuration,
+ BuildConfigurationValue configuration,
FragmentClassSet universallyRequiredFragments,
ImmutableMap configConditions,
Iterable prerequisites) {
@@ -136,7 +136,7 @@ public static RequiredConfigFragmentsProvider getAspectRequiredFragmentsIfEnable
Aspect aspect,
ConfiguredAspectFactory aspectFactory,
Rule associatedTarget,
- BuildConfiguration configuration,
+ BuildConfigurationValue configuration,
FragmentClassSet universallyRequiredFragments,
ImmutableMap configConditions,
Iterable prerequisites) {
@@ -164,7 +164,7 @@ public static RequiredConfigFragmentsProvider getAspectRequiredFragmentsIfEnable
/** Internal implementation that handles requirements common to both rules and aspects. */
private static RequiredConfigFragmentsProvider.Builder getRequiredFragments(
IncludeConfigFragmentsEnum mode,
- BuildConfiguration configuration,
+ BuildConfigurationValue configuration,
FragmentClassSet universallyRequiredFragments,
ConfigurationFragmentPolicy configurationFragmentPolicy,
Collection configConditions,
@@ -290,7 +290,8 @@ private static void addStarlarkBuildSettings(
}
}
- private static IncludeConfigFragmentsEnum getRequiredFragmentsMode(BuildConfiguration config) {
+ private static IncludeConfigFragmentsEnum getRequiredFragmentsMode(
+ BuildConfigurationValue config) {
return checkNotNull(
config.getOptions().get(CoreOptions.class).includeRequiredConfigFragmentsProvider);
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/SymlinkDefinition.java b/src/main/java/com/google/devtools/build/lib/analysis/config/SymlinkDefinition.java
index 790d600658c9a9..0350265291e945 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/SymlinkDefinition.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/SymlinkDefinition.java
@@ -52,8 +52,8 @@ public interface SymlinkDefinition {
*/
ImmutableSet getLinkPaths(
BuildRequestOptions buildRequestOptions,
- Set targetConfigs,
- Function configGetter,
+ Set targetConfigs,
+ Function configGetter,
RepositoryName repositoryName,
Path outputPath,
Path execRoot);
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java
index a568b3a8f093b9..e166f2fde0e19b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java
@@ -50,7 +50,7 @@ public final class TransitionResolver {
* @return the target's configuration(s), expressed as a diff from the original configuration.
*/
public static ConfigurationTransition evaluateTransition(
- BuildConfiguration fromConfig,
+ BuildConfigurationValue fromConfig,
ConfigurationTransition baseTransition,
Target toTarget,
@Nullable TransitionFactory trimmingTransitionFactory) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java
index 1377dab2385cc3..a879896d14030f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java
@@ -32,7 +32,7 @@
import com.google.devtools.build.lib.packages.PackageSpecification.PackageGroupContents;
import com.google.devtools.build.lib.packages.Provider;
import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;
-import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
import java.util.function.Consumer;
import javax.annotation.Nullable;
import net.starlark.java.eval.Dict;
@@ -47,7 +47,7 @@
*/
public abstract class AbstractConfiguredTarget implements ConfiguredTarget, VisibilityProvider {
private final Label label;
- private final BuildConfigurationValue.Key configurationKey;
+ private final BuildConfigurationKey configurationKey;
private final NestedSet visibility;
@@ -75,13 +75,13 @@ public abstract class AbstractConfiguredTarget implements ConfiguredTarget, Visi
OutputGroupInfo.STARLARK_NAME,
ACTIONS_FIELD_NAME);
- public AbstractConfiguredTarget(Label label, BuildConfigurationValue.Key configurationKey) {
+ public AbstractConfiguredTarget(Label label, BuildConfigurationKey configurationKey) {
this(label, configurationKey, NestedSetBuilder.emptySet(Order.STABLE_ORDER));
}
protected AbstractConfiguredTarget(
Label label,
- BuildConfigurationValue.Key configurationKey,
+ BuildConfigurationKey configurationKey,
NestedSet visibility) {
this.label = label;
this.configurationKey = configurationKey;
@@ -99,7 +99,7 @@ public final NestedSet getVisibility() {
}
@Override
- public BuildConfigurationValue.Key getConfigurationKey() {
+ public BuildConfigurationKey getConfigurationKey() {
return configurationKey;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java
index 79e0f1c23af6f6..bfcbacd861c565 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java
@@ -35,7 +35,7 @@
import com.google.devtools.build.lib.packages.Info;
import com.google.devtools.build.lib.packages.PackageSpecification.PackageGroupContents;
import com.google.devtools.build.lib.packages.Provider;
-import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
import com.google.devtools.build.lib.util.FileType;
import javax.annotation.Nullable;
import net.starlark.java.eval.Dict;
@@ -52,7 +52,7 @@ public abstract class FileConfiguredTarget extends AbstractConfiguredTarget
FileConfiguredTarget(
Label label,
- BuildConfigurationValue.Key configurationKey,
+ BuildConfigurationKey configurationKey,
NestedSet visibility,
Artifact artifact,
@Nullable InstrumentedFilesInfo instrumentedFilesInfo,
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/OutputFileConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/OutputFileConfiguredTarget.java
index 419d57ad723fb1..7bc48ca558b92f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/OutputFileConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/OutputFileConfiguredTarget.java
@@ -30,7 +30,7 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.OutputFile;
import com.google.devtools.build.lib.packages.PackageSpecification.PackageGroupContents;
-import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
import net.starlark.java.eval.Printer;
/** A ConfiguredTarget for an OutputFile. */
@@ -56,7 +56,7 @@ public OutputFileConfiguredTarget(
private OutputFileConfiguredTarget(
Label label,
- BuildConfigurationValue.Key configurationKey,
+ BuildConfigurationKey configurationKey,
NestedSet visibility,
Artifact artifact,
ConfiguredTarget generatingRule) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java
index 05527042ca4c4f..46f3a96b0c9c57 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java
@@ -40,7 +40,7 @@
import com.google.devtools.build.lib.packages.OutputFile;
import com.google.devtools.build.lib.packages.PackageSpecification.PackageGroupContents;
import com.google.devtools.build.lib.packages.Provider;
-import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.Instantiator;
@@ -85,7 +85,7 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget {
@VisibleForSerialization
RuleConfiguredTarget(
Label label,
- BuildConfigurationValue.Key configurationKey,
+ BuildConfigurationKey configurationKey,
NestedSet visibility,
TransitiveInfoProviderMap providers,
ImmutableMap configConditions,
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/constraints/TopLevelConstraintSemantics.java b/src/main/java/com/google/devtools/build/lib/analysis/constraints/TopLevelConstraintSemantics.java
index 02119995b30390..ce4d568fe88d41 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/constraints/TopLevelConstraintSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/constraints/TopLevelConstraintSemantics.java
@@ -26,7 +26,7 @@
import com.google.devtools.build.lib.analysis.IncompatiblePlatformProvider;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.ViewCreationFailedException;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.configuredtargets.OutputFileConfiguredTarget;
import com.google.devtools.build.lib.analysis.constraints.SupportedEnvironmentsProvider.RemovedEnvironmentCulprit;
import com.google.devtools.build.lib.analysis.platform.ConstraintValueInfo;
@@ -42,7 +42,7 @@
import com.google.devtools.build.lib.server.FailureDetails.Analysis;
import com.google.devtools.build.lib.server.FailureDetails.Analysis.Code;
import com.google.devtools.build.lib.server.FailureDetails.FailureDetail;
-import com.google.devtools.build.lib.skyframe.BuildConfigurationValue.Key;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -63,7 +63,7 @@
public class TopLevelConstraintSemantics {
private final RuleContextConstraintSemantics constraintSemantics;
private final PackageManager packageManager;
- private final Function configurationProvider;
+ private final Function configurationProvider;
private final ExtendedEventHandler eventHandler;
private static final String TARGET_INCOMPATIBLE_ERROR_TEMPLATE =
"Target %s is incompatible and cannot be built, but was explicitly requested.%s";
@@ -79,7 +79,7 @@ public class TopLevelConstraintSemantics {
public TopLevelConstraintSemantics(
RuleContextConstraintSemantics constraintSemantics,
PackageManager packageManager,
- Function configurationProvider,
+ Function configurationProvider,
ExtendedEventHandler eventHandler) {
this.constraintSemantics = constraintSemantics;
this.packageManager = packageManager;
@@ -259,7 +259,8 @@ public Set checkTargetEnvironmentRestrictions(
Multimap exceptionInducingTargets =
ArrayListMultimap.create();
for (ConfiguredTarget topLevelTarget : topLevelTargets) {
- BuildConfiguration config = configurationProvider.apply(topLevelTarget.getConfigurationKey());
+ BuildConfigurationValue config =
+ configurationProvider.apply(topLevelTarget.getConfigurationKey());
Target target = null;
try {
target = packageManager.getTarget(eventHandler, topLevelTarget.getLabel());
@@ -312,11 +313,11 @@ public Set checkTargetEnvironmentRestrictions(
}
/**
- * Helper method for {@link #checkTargetEnvironmentRestrictions} that populates inferred
- * expected environments.
+ * Helper method for {@link #checkTargetEnvironmentRestrictions} that populates inferred expected
+ * environments.
*/
- private List autoConfigureTargetEnvironments(BuildConfiguration config,
- @Nullable Label environmentGroupLabel)
+ private List autoConfigureTargetEnvironments(
+ BuildConfigurationValue config, @Nullable Label environmentGroupLabel)
throws InterruptedException, NoSuchTargetException, NoSuchPackageException {
if (environmentGroupLabel == null) {
return ImmutableList.of();
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleContext.java
index f4d4e7daa8bede..2cd1f72bb3ea92 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleContext.java
@@ -43,7 +43,7 @@
import com.google.devtools.build.lib.analysis.RunfilesProvider;
import com.google.devtools.build.lib.analysis.ShToolchain;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.CoreOptions;
import com.google.devtools.build.lib.analysis.config.FragmentCollection;
import com.google.devtools.build.lib.analysis.config.HostTransition;
@@ -597,13 +597,13 @@ public FragmentCollection getHostFragments() throws EvalException {
}
@Override
- public BuildConfiguration getConfiguration() throws EvalException {
+ public BuildConfigurationValue getConfiguration() throws EvalException {
checkMutable("configuration");
return ruleContext.getConfiguration();
}
@Override
- public BuildConfiguration getHostConfiguration() throws EvalException {
+ public BuildConfigurationValue getHostConfiguration() throws EvalException {
checkMutable("host_configuration");
return ruleContext.getHostConfiguration();
}
@@ -634,7 +634,7 @@ public Object getBuildSettingValue() throws EvalException {
@Override
public boolean instrumentCoverage(Object targetUnchecked) throws EvalException {
checkMutable("coverage_instrumented");
- BuildConfiguration config = ruleContext.getConfiguration();
+ BuildConfigurationValue config = ruleContext.getConfiguration();
if (!config.isCodeCoverageEnabled()) {
return false;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/starlark/annotations/processor/StarlarkConfigurationFieldProcessor.java b/src/main/java/com/google/devtools/build/lib/analysis/starlark/annotations/processor/StarlarkConfigurationFieldProcessor.java
index 7c541c4e4b1758..7663447c341b9b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/starlark/annotations/processor/StarlarkConfigurationFieldProcessor.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/starlark/annotations/processor/StarlarkConfigurationFieldProcessor.java
@@ -113,8 +113,8 @@ private boolean isMethodOfStarlarkExposedConfigurationFragment(
return false;
}
Element classElement = methodElement.getEnclosingElement();
- // If configurationFragmentType is null, then BuildConfiguration.Fragment isn't even included
- // in the current build, so the class clearly does not depend on it.
+ // If configurationFragmentType is null, then the fragment isn't even included in the current
+ // build, so the class clearly does not depend on it.
if (configurationFragmentType == null
|| !typeUtils.isAssignable(classElement.asType(), configurationFragmentType.asType())) {
return false;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/InstrumentedFilesCollector.java b/src/main/java/com/google/devtools/build/lib/analysis/test/InstrumentedFilesCollector.java
index cd0e3e4051a960..f251e447d9a272 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/InstrumentedFilesCollector.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/InstrumentedFilesCollector.java
@@ -21,7 +21,7 @@
import com.google.devtools.build.lib.analysis.FileProvider;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
@@ -246,8 +246,8 @@ public static InstrumentedFilesInfo collect(
* representing a rule) should be instrumented according the --instrumentation_filter and
* --instrument_test_targets settings in {@code config}.
*/
- public static boolean shouldIncludeLocalSources(BuildConfiguration config,
- TransitiveInfoCollection target) {
+ public static boolean shouldIncludeLocalSources(
+ BuildConfigurationValue config, TransitiveInfoCollection target) {
return shouldIncludeLocalSources(config, target.getLabel(),
target.getProvider(TestProvider.class) != null);
}
@@ -257,7 +257,7 @@ public static boolean shouldIncludeLocalSources(BuildConfiguration config,
* the --instrumentation_filter and --instrument_test_targets config settings.
*/
public static boolean shouldIncludeLocalSources(
- BuildConfiguration config, Label label, boolean isTest) {
+ BuildConfigurationValue config, Label label, boolean isTest) {
return ((config.shouldInstrumentTestTargets() || !isTest)
&& config.getInstrumentationFilter().isIncluded(label.toString()));
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestActionBuilder.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestActionBuilder.java
index b1b3eb2253db58..6d14d7a1a81469 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestActionBuilder.java
@@ -40,7 +40,7 @@
import com.google.devtools.build.lib.analysis.SingleRunfilesSupplier;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.actions.LazyWriteNestedSetOfPairAction;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.configuredtargets.PackageGroupConfiguredTarget;
import com.google.devtools.build.lib.analysis.test.TestProvider.TestParams;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -186,7 +186,7 @@ private ActionOwner getOwner() {
private TestParams createTestAction(int shards)
throws InterruptedException { // due to TestTargetExecutionSettings
PathFragment targetName = PathFragment.create(ruleContext.getLabel().getName());
- BuildConfiguration config = ruleContext.getConfiguration();
+ BuildConfigurationValue config = ruleContext.getConfiguration();
TestConfiguration testConfiguration = config.getFragment(TestConfiguration.class);
AnalysisEnvironment env = ruleContext.getAnalysisEnvironment();
ArtifactRoot root = ruleContext.getTestLogsDirectory();
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestRunnerAction.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestRunnerAction.java
index 327f2d4b9eff62..2e8adcc1380803 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestRunnerAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestRunnerAction.java
@@ -50,7 +50,7 @@
import com.google.devtools.build.lib.actions.TestExecException;
import com.google.devtools.build.lib.analysis.PackageSpecificationProvider;
import com.google.devtools.build.lib.analysis.SingleRunfilesSupplier;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.RunUnder;
import com.google.devtools.build.lib.analysis.test.TestActionContext.FailedAttemptResult;
import com.google.devtools.build.lib.analysis.test.TestActionContext.TestAttemptContinuation;
@@ -108,7 +108,7 @@ public class TestRunnerAction extends AbstractAction
private final Artifact testSetupScript;
private final Artifact testXmlGeneratorScript;
private final Artifact collectCoverageScript;
- private final BuildConfiguration configuration;
+ private final BuildConfigurationValue configuration;
private final TestConfiguration testConfiguration;
private final Artifact testLog;
private final Artifact cacheStatus;
@@ -196,7 +196,7 @@ private static ImmutableSet nonNullAsSet(Artifact... artifacts) {
TestTargetExecutionSettings executionSettings,
int shardNum,
int runNumber,
- BuildConfiguration configuration,
+ BuildConfigurationValue configuration,
String workspaceName,
@Nullable PathFragment shExecutable,
boolean cancelConcurrentTestsOnSuccess,
@@ -303,7 +303,7 @@ public RunfilesSupplier getLcovMergerRunfilesSupplier() {
return lcovMergerRunfilesSupplier;
}
- public BuildConfiguration getConfiguration() {
+ public BuildConfigurationValue getConfiguration() {
return configuration;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestStrategy.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestStrategy.java
index 0da99ea307793d..01da1f738e15db 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestStrategy.java
@@ -28,7 +28,7 @@
import com.google.devtools.build.lib.actions.CommandLineExpansionException;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.UserExecException;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.PerLabelOptions;
import com.google.devtools.build.lib.analysis.test.TestRunnerAction.ResolvedPaths;
import com.google.devtools.build.lib.cmdline.Label;
@@ -255,7 +255,7 @@ private static int getTestAttemptsPerLabel(
* but ends up with the same effective value as all other rules in that bucket.
*/
protected static final Duration getTimeout(TestRunnerAction testAction) {
- BuildConfiguration configuration = testAction.getConfiguration();
+ BuildConfigurationValue configuration = testAction.getConfiguration();
return configuration
.getFragment(TestConfiguration.class)
.getTestTimeout()
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestTargetExecutionSettings.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestTargetExecutionSettings.java
index d66120c739f091..1d8dbe3aca8283 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestTargetExecutionSettings.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestTargetExecutionSettings.java
@@ -27,7 +27,7 @@
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.actions.Compression;
import com.google.devtools.build.lib.analysis.actions.FileWriteAction;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.RunUnder;
import com.google.devtools.build.lib.packages.TargetUtils;
import com.google.devtools.build.lib.vfs.Path;
@@ -64,7 +64,7 @@ public final class TestTargetExecutionSettings {
throws InterruptedException { // due to CommandLine.arguments
Preconditions.checkArgument(TargetUtils.isTestRule(ruleContext.getRule()));
Preconditions.checkArgument(shards >= 0);
- BuildConfiguration config = ruleContext.getConfiguration();
+ BuildConfigurationValue config = ruleContext.getConfiguration();
TestConfiguration testConfig = config.getFragment(TestConfiguration.class);
CommandLine targetArgs = runfilesSupport.getArgs();
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestTrimmingTransitionFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestTrimmingTransitionFactory.java
index 3517a07fdc4e7f..2ed95ef05d7c4a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestTrimmingTransitionFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestTrimmingTransitionFactory.java
@@ -64,7 +64,8 @@ private TestTrimmingTransition(boolean testonly) {
// transition is always invoked on every target in the top-level invocation. Thus, a wide
// invocation, like //..., will cause the transition to be invoked on a large number of targets
// leading to significant performance degradation. (Notably, the transition itself is somewhat
- // fast; however, the post-processing of the BuildOptions into the actual BuildConfiguration
+ // fast; however, the post-processing of the BuildOptions into the actual
+ // BuildConfigurationValue
// takes a significant amount of time).
//
// Test any caching changes for performance impact in a longwide scenario with
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
index b883cbd0091f79..6994f6d6d8b874 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
@@ -24,7 +24,7 @@
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.RuleDefinition;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionFunction;
import com.google.devtools.build.lib.bazel.bzlmod.ModuleExtensionResolutionFunction;
import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction;
@@ -187,7 +187,8 @@ private static class RepositoryCacheInfoItem extends InfoItem {
}
@Override
- public byte[] get(Supplier configurationSupplier, CommandEnvironment env)
+ public byte[] get(
+ Supplier configurationSupplier, CommandEnvironment env)
throws AbruptExitException, InterruptedException {
return print(repositoryCache.getRootPath());
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
index 5fae569920e950..9dfe2e77863ab0 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -25,8 +25,8 @@
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
import com.google.devtools.build.lib.analysis.PlatformConfiguration;
import com.google.devtools.build.lib.analysis.ShellConfiguration;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration.ActionEnvironmentProvider;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue.ActionEnvironmentProvider;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.CoreOptions;
import com.google.devtools.build.lib.analysis.config.Fragment;
@@ -221,7 +221,7 @@ public StrictActionEnvConfiguration(BuildOptions buildOptions) {}
env.put(entry.getKey(), entry.getValue());
}
- if (!BuildConfiguration.runfilesEnabled(options.get(CoreOptions.class))) {
+ if (!BuildConfigurationValue.runfilesEnabled(options.get(CoreOptions.class))) {
// Setting this environment variable is for telling the binary running
// in a Bazel action when to use runfiles library or runfiles tree.
// The downside is that it will discard cache for all actions once
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppSemantics.java
index 922c40011e4938..3fc16ff969c75a 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppSemantics.java
@@ -18,7 +18,7 @@
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.RuleErrorConsumer;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.AspectDescriptor;
import com.google.devtools.build.lib.packages.Provider;
@@ -72,7 +72,7 @@ private BazelCppSemantics(Language language) {
@Override
public void finalizeCompileActionBuilder(
- BuildConfiguration configuration,
+ BuildConfigurationValue configuration,
FeatureConfiguration featureConfiguration,
CppCompileActionBuilder actionBuilder,
RuleErrorConsumer ruleErrorConsumer) {
@@ -114,7 +114,7 @@ public boolean allowIncludeScanning() {
}
@Override
- public boolean needsDotdInputPruning(BuildConfiguration configuration) {
+ public boolean needsDotdInputPruning(BuildConfigurationValue configuration) {
if (language == Language.CPP) {
return true;
} else {
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/AnalysisPhaseRunner.java b/src/main/java/com/google/devtools/build/lib/buildtool/AnalysisPhaseRunner.java
index a55b4d793590e3..612494440fc96c 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/AnalysisPhaseRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/AnalysisPhaseRunner.java
@@ -23,7 +23,7 @@
import com.google.devtools.build.lib.analysis.BuildView;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.ViewCreationFailedException;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.CoreOptions;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
@@ -45,7 +45,7 @@
import com.google.devtools.build.lib.runtime.CommandEnvironment;
import com.google.devtools.build.lib.server.FailureDetails.BuildConfiguration.Code;
import com.google.devtools.build.lib.server.FailureDetails.FailureDetail;
-import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
import com.google.devtools.build.lib.skyframe.BuildInfoCollectionFunction;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.TargetPatternPhaseValue;
@@ -136,7 +136,7 @@ public static AnalysisResult execute(
reportTargets(env, analysisResult);
for (ConfiguredTarget target : analysisResult.getTargetsToSkip()) {
- BuildConfiguration config =
+ BuildConfigurationValue config =
env.getSkyframeExecutor()
.getConfiguration(env.getReporter(), target.getConfigurationKey());
Label label = target.getLabel();
@@ -240,24 +240,20 @@ private static AnalysisResult runAnalysisPhase(
timer.stop().elapsed(TimeUnit.MILLISECONDS),
view.getAndClearPkgManagerStatistics(),
env.getSkyframeExecutor().wasAnalysisCacheDiscardedAndResetBit()));
- ImmutableSet configurationKeys =
+ ImmutableSet configurationKeys =
Stream.concat(
- analysisResult
- .getTargetsToBuild()
- .stream()
+ analysisResult.getTargetsToBuild().stream()
.map(ConfiguredTarget::getConfigurationKey)
.distinct(),
analysisResult.getTargetsToTest() == null
? Stream.empty()
- : analysisResult
- .getTargetsToTest()
- .stream()
+ : analysisResult.getTargetsToTest().stream()
.map(ConfiguredTarget::getConfigurationKey)
.distinct())
.filter(Objects::nonNull)
.distinct()
.collect(ImmutableSet.toImmutableSet());
- Map configurationMap =
+ Map configurationMap =
env.getSkyframeExecutor().getConfigurations(env.getReporter(), configurationKeys);
env.getEventBus()
.post(
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/AqueryBuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/AqueryBuildTool.java
index 30b5cec58df989..a608013f0d48fa 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/AqueryBuildTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/AqueryBuildTool.java
@@ -16,7 +16,7 @@
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.CommandLineExpansionException;
import com.google.devtools.build.lib.analysis.ConfiguredTargetValue;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.query2.PostAnalysisQueryEnvironment;
import com.google.devtools.build.lib.query2.PostAnalysisQueryEnvironment.TopLevelConfigurations;
@@ -112,7 +112,7 @@ public BlazeCommandResult dumpActionGraphFromSkyframe(BuildRequest request) {
@Override
protected PostAnalysisQueryEnvironment getQueryEnvironment(
BuildRequest request,
- BuildConfiguration hostConfiguration,
+ BuildConfigurationValue hostConfiguration,
TopLevelConfigurations topLevelConfigurations,
Collection transitiveConfigurationKeys,
WalkableGraph walkableGraph) {
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/ConfigSymlink.java b/src/main/java/com/google/devtools/build/lib/buildtool/ConfigSymlink.java
index 1c3e506e1e1322..7ceb9dc5c10e0a 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/ConfigSymlink.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/ConfigSymlink.java
@@ -18,7 +18,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.ArtifactRoot;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.SymlinkDefinition;
import com.google.devtools.build.lib.cmdline.RepositoryName;
@@ -30,7 +30,7 @@
class ConfigSymlink implements SymlinkDefinition {
@FunctionalInterface
interface ConfigPathGetter {
- ArtifactRoot apply(BuildConfiguration configuration, RepositoryName repositoryName);
+ ArtifactRoot apply(BuildConfigurationValue configuration, RepositoryName repositoryName);
}
private final String suffix;
@@ -49,8 +49,8 @@ public String getLinkName(String symlinkPrefix, String productName, String works
@Override
public ImmutableSet getLinkPaths(
BuildRequestOptions buildRequestOptions,
- Set targetConfigs,
- Function configGetter,
+ Set targetConfigs,
+ Function configGetter,
RepositoryName repositoryName,
Path outputPath,
Path execRoot) {
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/CqueryBuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/CqueryBuildTool.java
index 9f9815c4c30fa9..9650f0eda5d563 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/CqueryBuildTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/CqueryBuildTool.java
@@ -14,7 +14,7 @@
package com.google.devtools.build.lib.buildtool;
import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.query2.PostAnalysisQueryEnvironment.TopLevelConfigurations;
import com.google.devtools.build.lib.query2.cquery.ConfiguredTargetQueryEnvironment;
import com.google.devtools.build.lib.query2.cquery.CqueryOptions;
@@ -36,7 +36,7 @@ public CqueryBuildTool(CommandEnvironment env, QueryExpression queryExpression)
@Override
protected ConfiguredTargetQueryEnvironment getQueryEnvironment(
BuildRequest request,
- BuildConfiguration hostConfiguration,
+ BuildConfigurationValue hostConfiguration,
TopLevelConfigurations configurations,
Collection transitiveConfigurationKeys,
WalkableGraph walkableGraph)
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
index 15e03e06ffa450..4ca0d4491e4746 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
@@ -46,7 +46,7 @@
import com.google.devtools.build.lib.analysis.TopLevelArtifactHelper;
import com.google.devtools.build.lib.analysis.WorkspaceStatusAction;
import com.google.devtools.build.lib.analysis.actions.SymlinkTreeActionContext;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.analysis.test.TestActionContext;
@@ -622,14 +622,14 @@ private void createActionLogDirectory() throws AbruptExitException {
}
/**
- * Obtains the {@link BuildConfiguration} for a given {@link BuildOptions} for the purpose of
+ * Obtains the {@link BuildConfigurationValue} for a given {@link BuildOptions} for the purpose of
* symlink creation.
*
* In the event of a {@link InvalidConfigurationException}, a warning is emitted and null is
* returned.
*/
@Nullable
- private static BuildConfiguration getConfiguration(
+ private static BuildConfigurationValue getConfiguration(
SkyframeExecutor executor, Reporter reporter, BuildOptions options) {
try {
return executor.getConfiguration(reporter, options, /*keepGoing=*/ false);
@@ -677,7 +677,7 @@ private ImmutableList createConvenienceSymlinks(
Reporter reporter = env.getReporter();
// Gather configurations to consider.
- Set targetConfigurations =
+ Set targetConfigurations =
buildRequestOptions.useTopLevelTargetsForSymlinks()
? analysisResult.getTargetsToBuild().stream()
.map(ConfiguredTarget::getConfigurationKey)
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/OutputDirectoryLinksUtils.java b/src/main/java/com/google/devtools/build/lib/buildtool/OutputDirectoryLinksUtils.java
index f249513b05f3e6..ac93bf2059f9a8 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/OutputDirectoryLinksUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/OutputDirectoryLinksUtils.java
@@ -21,7 +21,7 @@
import com.google.common.flogger.GoogleLogger;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.SymlinkDefinition;
import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ConvenienceSymlink;
@@ -102,8 +102,8 @@ static ImmutableList createOutputDirectoryLinks(
Path workspace,
BlazeDirectories directories,
EventHandler eventHandler,
- Set targetConfigs,
- Function configGetter,
+ Set targetConfigs,
+ Function configGetter,
String productName) {
Path execRoot = directories.getExecRoot(workspaceName);
Path outputPath = directories.getOutputPath(workspaceName);
@@ -376,14 +376,14 @@ private static void removeLink(
@SuppressWarnings("deprecation") // RuleContext#get*Directory not available here.
private static final ImmutableList STANDARD_LINK_DEFINITIONS =
ImmutableList.of(
- new ConfigSymlink("bin", BuildConfiguration::getBinDirectory),
- new ConfigSymlink("testlogs", BuildConfiguration::getTestLogsDirectory),
- new ConfigSymlink("genfiles", BuildConfiguration::getGenfilesDirectory) {
+ new ConfigSymlink("bin", BuildConfigurationValue::getBinDirectory),
+ new ConfigSymlink("testlogs", BuildConfigurationValue::getTestLogsDirectory),
+ new ConfigSymlink("genfiles", BuildConfigurationValue::getGenfilesDirectory) {
@Override
public ImmutableSet getLinkPaths(
BuildRequestOptions buildRequestOptions,
- Set targetConfigs,
- Function configGetter,
+ Set targetConfigs,
+ Function configGetter,
RepositoryName repositoryName,
Path outputPath,
Path execRoot) {
@@ -410,8 +410,8 @@ public String getLinkName(
@Override
public ImmutableSet getLinkPaths(
BuildRequestOptions buildRequestOptions,
- Set targetConfigs,
- Function configGetter,
+ Set targetConfigs,
+ Function configGetter,
RepositoryName repositoryName,
Path outputPath,
Path execRoot) {
@@ -429,8 +429,8 @@ public String getLinkName(
@Override
public ImmutableSet getLinkPaths(
BuildRequestOptions buildRequestOptions,
- Set targetConfigs,
- Function configGetter,
+ Set targetConfigs,
+ Function configGetter,
RepositoryName repositoryName,
Path outputPath,
Path execRoot) {
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/PostAnalysisQueryBuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/PostAnalysisQueryBuildTool.java
index 33d76d87c7f365..8093b9d0ca4b71 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/PostAnalysisQueryBuildTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/PostAnalysisQueryBuildTool.java
@@ -15,7 +15,7 @@
import com.google.devtools.build.lib.analysis.AnalysisResult;
import com.google.devtools.build.lib.analysis.ViewCreationFailedException;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.query2.NamedThreadSafeOutputFormatterCallback;
import com.google.devtools.build.lib.query2.PostAnalysisQueryEnvironment;
@@ -116,7 +116,7 @@ protected void postProcessAnalysisResult(BuildRequest request, AnalysisResult an
protected abstract PostAnalysisQueryEnvironment getQueryEnvironment(
BuildRequest request,
- BuildConfiguration hostConfiguration,
+ BuildConfigurationValue hostConfiguration,
TopLevelConfigurations topLevelConfigurations,
Collection transitiveConfigurationKeys,
WalkableGraph walkableGraph)
@@ -124,7 +124,7 @@ protected abstract PostAnalysisQueryEnvironment getQueryEnvironment(
private void doPostAnalysisQuery(
BuildRequest request,
- BuildConfiguration hostConfiguration,
+ BuildConfigurationValue hostConfiguration,
TopLevelConfigurations topLevelConfigurations,
Collection transitiveConfigurationKeys,
QueryRuntimeHelper queryRuntimeHelper,
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/TestFilteringCompleteEvent.java b/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/TestFilteringCompleteEvent.java
index febb37cdb0f57a..49f33283c57291 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/TestFilteringCompleteEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/TestFilteringCompleteEvent.java
@@ -17,9 +17,9 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.test.TestProvider;
-import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
import java.util.Collection;
import java.util.Map;
import javax.annotation.concurrent.Immutable;
@@ -35,7 +35,7 @@ public class TestFilteringCompleteEvent {
private final Collection targets;
private final Collection testTargets;
private final Collection