diff options
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.java | 25 |
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}. |