aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java25
1 files changed, 20 insertions, 5 deletions
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 0727e22056..a2e37345e4 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
@@ -16,11 +16,14 @@ package com.google.devtools.build.lib.analysis;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.configuredtargets.InputFileConfiguredTarget;
+import com.google.devtools.build.lib.analysis.configuredtargets.PackageGroupConfiguredTarget;
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;
import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.packages.RequiredProviders;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
import com.google.devtools.build.lib.skylarkinterface.Param;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
@@ -94,13 +97,25 @@ public interface TransitiveInfoCollection extends SkylarkIndexable, SkylarkProvi
*/
Label getLabel();
+ /** Deprecated! Use {@link #getConfigurationKey} instead. */
+ @Deprecated
+ @Nullable
+ BuildConfiguration getConfiguration();
+
/**
- * <p>Returns the {@link BuildConfiguration} for which this transitive info collection is defined.
- * Configuration is defined for all configured targets with exception of {@link
- * InputFileConfiguredTarget} and {@link PackageGroupConfiguredTarget} for which it is always
- * <b>null</b>.</p>
+ * Returns the {@link BuildConfigurationValue.Key} naming the {@link BuildConfiguration} for which
+ * this transitive info collection is defined. Configuration is defined for all configured targets
+ * with exception of {@link InputFileConfiguredTarget} and {@link PackageGroupConfiguredTarget}
+ * for which it is always <b>null</b>.
*/
- @Nullable BuildConfiguration getConfiguration();
+ @Nullable
+ default BuildConfigurationValue.Key getConfigurationKey() {
+ BuildConfiguration configuration = getConfiguration();
+ return configuration == null
+ ? null
+ : BuildConfigurationValue.key(
+ configuration.fragmentClasses(), configuration.getBuildOptionsDiff());
+ }
/**
* Checks whether this {@link TransitiveInfoCollection} satisfies given {@link RequiredProviders}.