aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java30
1 files changed, 10 insertions, 20 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java
index 4339a02dc8..ba7da944b2 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java
@@ -33,6 +33,7 @@ import com.google.devtools.build.lib.actions.BaseSpawn;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.ResourceSet;
+import com.google.devtools.build.lib.actions.RunfilesSupplier;
import com.google.devtools.build.lib.actions.Spawn;
import com.google.devtools.build.lib.actions.SpawnActionContext;
import com.google.devtools.build.lib.analysis.FilesToRunProvider;
@@ -40,9 +41,9 @@ import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.PathFragment;
-
import java.io.IOException;
import java.util.Collection;
+import java.util.List;
import java.util.Map;
/**
@@ -123,13 +124,13 @@ public final class PopulateTreeArtifactAction extends AbstractAction {
Artifact treeArtifact,
Iterable<PathFragment> entriesToExtract,
Iterable<String> commandLine,
- Map<PathFragment, Artifact> runfilesManifests,
+ RunfilesSupplier runfilesSupplier,
ActionExecutionMetadata action) {
super(
ImmutableList.copyOf(commandLine),
ImmutableMap.<String, String>of(),
ImmutableMap.<String, String>of(),
- ImmutableMap.copyOf(runfilesManifests),
+ runfilesSupplier,
action,
AbstractAction.DEFAULT_RESOURCE_SET);
this.treeArtifact = treeArtifact;
@@ -212,13 +213,12 @@ public final class PopulateTreeArtifactAction extends AbstractAction {
f.addString(GUID);
f.addString(getMnemonic());
f.addStrings(spawnCommandLine());
- Map<PathFragment, Artifact> zipperManifest = zipperExecutableRunfilesManifest();
- f.addInt(zipperManifest.size());
- for (Map.Entry<PathFragment, Artifact> input : zipperManifest.entrySet()) {
- f.addString(input.getKey().getPathString() + "/");
- f.addPath(input.getValue().getExecPath());
+ f.addPaths(zipper.getRunfilesSupplier().getRunfilesDirs());
+ List<Artifact> runfilesManifests = zipper.getRunfilesSupplier().getManifests();
+ f.addInt(runfilesManifests.size());
+ for (Artifact manifest : runfilesManifests) {
+ f.addPath(manifest.getExecPath());
}
-
return f.hexDigestAndReset();
}
@@ -255,7 +255,7 @@ public final class PopulateTreeArtifactAction extends AbstractAction {
outputTreeArtifact,
entries,
spawnCommandLine(),
- zipperExecutableRunfilesManifest(),
+ zipper.getRunfilesSupplier(),
this);
}
@@ -269,16 +269,6 @@ public final class PopulateTreeArtifactAction extends AbstractAction {
"@" + archiveManifest.getExecPathString());
}
- private Map<PathFragment, Artifact> zipperExecutableRunfilesManifest() {
- if (zipper.getRunfilesManifest() != null) {
- return ImmutableMap.of(
- BaseSpawn.runfilesForFragment(zipper.getExecutable().getExecPath()),
- zipper.getRunfilesManifest());
- } else {
- return ImmutableMap.<PathFragment, Artifact>of();
- }
- }
-
private Iterable<PathFragment> readAndCheckManifestEntries()
throws IOException, IllegalManifestFileException {
ImmutableList.Builder<PathFragment> manifestEntries = ImmutableList.builder();