aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/actions/CommandLines.java
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2018-04-30 09:41:53 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-30 09:43:19 -0700
commitd7fde0ea4580e58beb6801929daf0c183c3affba (patch)
tree301e44d12bc19bb18a1bc8c5da4d087a8deedc37 /src/main/java/com/google/devtools/build/lib/actions/CommandLines.java
parent25d5efc1b1e51a618c6fc81f6e987cf416322fb8 (diff)
Support ParamFileActionInput in LocalSpawnRunner.
RELNOTES: None PiperOrigin-RevId: 194798051
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/actions/CommandLines.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/CommandLines.java28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/CommandLines.java b/src/main/java/com/google/devtools/build/lib/actions/CommandLines.java
index fef7c2d31f..2e29fab1a4 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/CommandLines.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/CommandLines.java
@@ -17,6 +17,7 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Artifact.ArtifactExpander;
+import com.google.devtools.build.lib.actions.ParameterFile.ParameterFileType;
import com.google.devtools.build.lib.actions.cache.VirtualActionInput;
import com.google.devtools.build.lib.collect.IterablesChain;
import com.google.devtools.build.lib.util.Fingerprint;
@@ -24,6 +25,7 @@ import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.protobuf.ByteString;
import java.io.IOException;
import java.io.OutputStream;
+import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -167,7 +169,12 @@ public class CommandLines {
.replaceFirst("%s", paramFileExecPath.getPathString());
arguments.addElement(paramArg);
cmdLineLength += paramArg.length() + 1;
- paramFiles.add(new ParamFileActionInput(paramFileExecPath, args, paramFileInfo));
+ paramFiles.add(
+ new ParamFileActionInput(
+ paramFileExecPath,
+ args,
+ paramFileInfo.getFileType(),
+ paramFileInfo.getCharset()));
}
}
}
@@ -221,22 +228,27 @@ public class CommandLines {
}
}
- static final class ParamFileActionInput implements VirtualActionInput {
+ /** An in-memory param file virtual action input. */
+ public static final class ParamFileActionInput implements VirtualActionInput {
final PathFragment paramFileExecPath;
final Iterable<String> arguments;
- final ParamFileInfo paramFileInfo;
+ final ParameterFileType type;
+ final Charset charset;
- ParamFileActionInput(
- PathFragment paramFileExecPath, Iterable<String> arguments, ParamFileInfo paramFileInfo) {
+ public ParamFileActionInput(
+ PathFragment paramFileExecPath,
+ Iterable<String> arguments,
+ ParameterFileType type,
+ Charset charset) {
this.paramFileExecPath = paramFileExecPath;
this.arguments = arguments;
- this.paramFileInfo = paramFileInfo;
+ this.type = type;
+ this.charset = charset;
}
@Override
public void writeTo(OutputStream out) throws IOException {
- ParameterFile.writeParameterFile(
- out, arguments, paramFileInfo.getFileType(), paramFileInfo.getCharset());
+ ParameterFile.writeParameterFile(out, arguments, type, charset);
}
@Override