Remove BuildConfiguration from ConfiguredTarget.
PiperOrigin-RevId: 190804641
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 29f1506..e068719 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
@@ -16,7 +16,6 @@
import com.google.common.collect.ImmutableCollection;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
-import com.google.devtools.build.lib.analysis.configuredtargets.InputFileConfiguredTarget;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
import com.google.devtools.build.lib.syntax.ClassObject;
@@ -45,16 +44,6 @@
*/
String FILES_FIELD = "files";
- /**
- * <p>Returns the {@link BuildConfiguration} for which this {@link ConfiguredTarget} is
- * defined. Configuration is defined for all configured targets with exception
- * of the {@link InputFileConfiguredTarget} for which it is always
- * <b>null</b>.</p>
- */
- @Override
- @Nullable
- BuildConfiguration getConfiguration();
-
default String getConfigurationChecksum() {
return getConfigurationKey() == null
? null
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 cba5aac..9c3ba9e 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
@@ -24,6 +24,7 @@
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.ConfiguredTargetAndData;
import java.util.List;
import java.util.Set;
@@ -96,6 +97,10 @@
return configuration;
}
+ public BuildConfigurationValue.Key getConfigurationKey() {
+ return BuildConfigurationValue.key(configuration);
+ }
+
public NestedSet<PackageGroupContents> getVisibility() {
return visibility;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java
index a2e3734..51cf588 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java
@@ -97,11 +97,6 @@
*/
Label getLabel();
- /** Deprecated! Use {@link #getConfigurationKey} instead. */
- @Deprecated
- @Nullable
- BuildConfiguration getConfiguration();
-
/**
* Returns the {@link BuildConfigurationValue.Key} naming the {@link BuildConfiguration} for which
* this transitive info collection is defined. Configuration is defined for all configured targets
@@ -109,13 +104,7 @@
* for which it is always <b>null</b>.
*/
@Nullable
- default BuildConfigurationValue.Key getConfigurationKey() {
- BuildConfiguration configuration = getConfiguration();
- return configuration == null
- ? null
- : BuildConfigurationValue.key(
- configuration.fragmentClasses(), configuration.getBuildOptionsDiff());
- }
+ BuildConfigurationValue.Key getConfigurationKey();
/**
* Checks whether this {@link TransitiveInfoCollection} satisfies given {@link RequiredProviders}.
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 9bd4119..18aa071 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
@@ -25,7 +25,6 @@
import com.google.devtools.build.lib.analysis.RunfilesProvider;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.analysis.VisibilityProvider;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
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;
@@ -34,6 +33,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.skylarkinterface.SkylarkPrinter;
import com.google.devtools.build.lib.syntax.ClassObject;
import com.google.devtools.build.lib.syntax.EvalException;
@@ -50,7 +50,7 @@
public abstract class AbstractConfiguredTarget
implements ConfiguredTarget, VisibilityProvider, ClassObject {
private final Label label;
- private final BuildConfiguration configuration;
+ private final BuildConfigurationValue.Key configurationKey;
private final NestedSet<PackageGroupContents> visibility;
@@ -61,14 +61,16 @@
private static final String DATA_RUNFILES_FIELD = "data_runfiles";
private static final String DEFAULT_RUNFILES_FIELD = "default_runfiles";
- public AbstractConfiguredTarget(Label label, BuildConfiguration configuration) {
- this(label, configuration, NestedSetBuilder.emptySet(Order.STABLE_ORDER));
+ public AbstractConfiguredTarget(Label label, BuildConfigurationValue.Key configurationKey) {
+ this(label, configurationKey, NestedSetBuilder.emptySet(Order.STABLE_ORDER));
}
protected AbstractConfiguredTarget(
- Label label, BuildConfiguration configuration, NestedSet<PackageGroupContents> visibility) {
+ Label label,
+ BuildConfigurationValue.Key configurationKey,
+ NestedSet<PackageGroupContents> visibility) {
this.label = label;
- this.configuration = configuration;
+ this.configurationKey = configurationKey;
this.visibility = visibility;
}
@@ -78,8 +80,8 @@
}
@Override
- public BuildConfiguration getConfiguration() {
- return configuration;
+ public BuildConfigurationValue.Key getConfigurationKey() {
+ return configurationKey;
}
@Override
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 134f50d..2fec10f 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
@@ -23,7 +23,6 @@
import com.google.devtools.build.lib.analysis.TransitiveInfoProviderMap;
import com.google.devtools.build.lib.analysis.TransitiveInfoProviderMapBuilder;
import com.google.devtools.build.lib.analysis.VisibilityProvider;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.fileset.FilesetProvider;
import com.google.devtools.build.lib.analysis.test.InstrumentedFilesProvider;
import com.google.devtools.build.lib.cmdline.Label;
@@ -33,6 +32,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.util.FileType;
/**
@@ -47,10 +47,10 @@
FileConfiguredTarget(
Label label,
- BuildConfiguration configuration,
+ BuildConfigurationValue.Key configurationKey,
NestedSet<PackageGroupContents> visibility,
Artifact artifact) {
- super(label, configuration, visibility);
+ super(label, configurationKey, visibility);
NestedSet<Artifact> filesToBuild = NestedSetBuilder.create(Order.STABLE_ORDER, artifact);
this.artifact = artifact;
FileProvider fileProvider = new FileProvider(filesToBuild);
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FilesetOutputConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FilesetOutputConfiguredTarget.java
index 1d4b001..39fabc3 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FilesetOutputConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FilesetOutputConfiguredTarget.java
@@ -20,12 +20,12 @@
import com.google.devtools.build.lib.actions.FilesetTraversalParams;
import com.google.devtools.build.lib.analysis.TargetContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.fileset.FilesetProvider;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
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.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.PathFragment;
import javax.annotation.Nullable;
@@ -54,7 +54,7 @@
@Nullable ImmutableList<FilesetTraversalParams> traversals) {
this(
targetContext.getLabel(),
- targetContext.getConfiguration(),
+ targetContext.getConfigurationKey(),
targetContext.getVisibility(),
generatingRule,
outputArtifact,
@@ -70,12 +70,12 @@
@AutoCodec.Instantiator
FilesetOutputConfiguredTarget(
Label label,
- BuildConfiguration configuration,
+ BuildConfigurationValue.Key configurationKey,
NestedSet<PackageGroupContents> visibility,
TransitiveInfoCollection generatingRule,
Artifact artifact,
@Nullable ImmutableList<FilesetTraversalParams> traversals) {
- super(label, configuration, visibility, artifact, generatingRule);
+ super(label, configurationKey, visibility, artifact, generatingRule);
FilesetProvider provider = generatingRule.getProvider(FilesetProvider.class);
Preconditions.checkArgument(provider != null);
filesetInputManifest = provider.getFilesetInputManifest();
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/MergedConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/MergedConfiguredTarget.java
index 40c20c8..bb1e908 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/MergedConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/MergedConfiguredTarget.java
@@ -53,7 +53,7 @@
}
private MergedConfiguredTarget(ConfiguredTarget base, TransitiveInfoProviderMap providers) {
- super(base.getLabel(), base.getConfiguration());
+ super(base.getLabel(), base.getConfigurationKey());
this.base = base;
this.providers = providers;
}
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 487bd17..613266a 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
@@ -21,13 +21,13 @@
import com.google.devtools.build.lib.analysis.TargetContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.test.InstrumentedFilesProvider;
import com.google.devtools.build.lib.analysis.test.InstrumentedFilesProviderImpl;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
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.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.Instantiator;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
@@ -46,7 +46,7 @@
TransitiveInfoCollection generatingRule, Artifact outputArtifact) {
this(
targetContext.getLabel(),
- targetContext.getConfiguration(),
+ targetContext.getConfigurationKey(),
targetContext.getVisibility(),
outputArtifact,
generatingRule);
@@ -57,11 +57,11 @@
@VisibleForSerialization
OutputFileConfiguredTarget(
Label label,
- BuildConfiguration configuration,
+ BuildConfigurationValue.Key configurationKey,
NestedSet<PackageGroupContents> visibility,
Artifact artifact,
TransitiveInfoCollection generatingRule) {
- super(label, configuration, visibility, artifact);
+ super(label, configurationKey, visibility, artifact);
this.generatingRule = Preconditions.checkNotNull(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 d2d6a8f..54f3368 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
@@ -31,7 +31,6 @@
import com.google.devtools.build.lib.analysis.TransitiveInfoProviderMap;
import com.google.devtools.build.lib.analysis.TransitiveInfoProviderMapBuilder;
import com.google.devtools.build.lib.analysis.Util;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
import com.google.devtools.build.lib.analysis.config.RunUnder;
import com.google.devtools.build.lib.analysis.skylark.SkylarkApiProvider;
@@ -42,6 +41,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.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.Instantiator;
@@ -97,7 +97,7 @@
@VisibleForSerialization
RuleConfiguredTarget(
Label label,
- BuildConfiguration configuration,
+ BuildConfigurationValue.Key configurationKey,
NestedSet<PackageGroupContents> visibility,
TransitiveInfoProviderMap providers,
ImmutableMap<Label, ConfigMatchingProvider> configConditions,
@@ -105,7 +105,7 @@
String ruleClassString,
List<ActionAnalysisMetadata> actions,
ImmutableMap<Artifact, Integer> generatingActionIndex) {
- super(label, configuration, visibility);
+ super(label, configurationKey, visibility);
// We don't use ImmutableMap.Builder here to allow augmenting the initial list of 'default'
// providers by passing them in.
@@ -138,7 +138,7 @@
ImmutableMap<Artifact, Integer> generatingActionIndex) {
this(
ruleContext.getLabel(),
- ruleContext.getConfiguration(),
+ ruleContext.getConfigurationKey(),
ruleContext.getVisibility(),
providers,
ruleContext.getConfigConditions(),