aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-02-23 16:03:28 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-23 16:05:01 -0800
commitceed58c70f1684fc4da2b32d86198c7a0635ec35 (patch)
tree26aa7a62d571ed6f57cdf1eed084d74030e0e9a0 /src/main/java/com/google/devtools/build/lib/analysis/configuredtargets
parentbbbf3dce2b95f054c8f2e85746b6b50b47740f61 (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.java33
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();