diff options
author | 2018-02-23 16:03:28 -0800 | |
---|---|---|
committer | 2018-02-23 16:05:01 -0800 | |
commit | ceed58c70f1684fc4da2b32d86198c7a0635ec35 (patch) | |
tree | 26aa7a62d571ed6f57cdf1eed084d74030e0e9a0 /src/main/java/com/google/devtools/build/lib/analysis/configuredtargets | |
parent | bbbf3dce2b95f054c8f2e85746b6b50b47740f61 (diff) |
@AutoCodec FilesetOutputConfiguredTarget.
PiperOrigin-RevId: 186837642
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/configuredtargets')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FilesetOutputConfiguredTarget.java | 33 |
1 files changed, 26 insertions, 7 deletions
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 cb7176a9f1..1d4b001cc3 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,20 +20,26 @@ import com.google.devtools.build.lib.actions.Artifact; 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.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.vfs.PathFragment; import javax.annotation.Nullable; /** - * A configured target for output files generated by {@code Fileset} rules. They are almost the - * same thing as output files except that they implement {@link FilesetProvider} so that - * {@code Fileset} can figure out the link tree behind them. + * A configured target for output files generated by {@code Fileset} rules. They are almost the same + * thing as output files except that they implement {@link FilesetProvider} so that {@code Fileset} + * can figure out the link tree behind them. * * <p>In an ideal world, this would not be needed: Filesets would depend on other Filesets and not - * their output directories. However, sometimes a Fileset depends on the output directory of - * another Fileset. Thus, we need this hack. + * their output directories. However, sometimes a Fileset depends on the output directory of another + * Fileset. Thus, we need this hack. */ +@AutoCodec public final class FilesetOutputConfiguredTarget extends OutputFileConfiguredTarget implements FilesetProvider { private final Artifact filesetInputManifest; @@ -46,17 +52,30 @@ public final class FilesetOutputConfiguredTarget extends OutputFileConfiguredTar TransitiveInfoCollection generatingRule, Artifact outputArtifact, @Nullable ImmutableList<FilesetTraversalParams> traversals) { - super( + this( targetContext.getLabel(), targetContext.getConfiguration(), targetContext.getVisibility(), + generatingRule, outputArtifact, - generatingRule); + traversals); Preconditions.checkState( outputFile.getLabel().equals(targetContext.getLabel()), "mismatch: %s %s", outputFile, targetContext); + } + + @AutoCodec.VisibleForSerialization + @AutoCodec.Instantiator + FilesetOutputConfiguredTarget( + Label label, + BuildConfiguration configuration, + NestedSet<PackageGroupContents> visibility, + TransitiveInfoCollection generatingRule, + Artifact artifact, + @Nullable ImmutableList<FilesetTraversalParams> traversals) { + super(label, configuration, visibility, artifact, generatingRule); FilesetProvider provider = generatingRule.getProvider(FilesetProvider.class); Preconditions.checkArgument(provider != null); filesetInputManifest = provider.getFilesetInputManifest(); |