aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2018-02-01 07:21:27 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-01 07:23:16 -0800
commita904b85376251775d58852a0e8480c0db032bac8 (patch)
tree83e846c6cfebee7259f093661e9313d4fc9338f8 /src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
parent5a50a7c403e567b850d5037d1ee0dad96be0b39d (diff)
Allow CustomCommandLine's mapFn to expand each object into multiple items.
This is needed to migrate JavaCompileAction away from CustomMultiArgv. PiperOrigin-RevId: 184136486
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
index 849265738e..8b496160ce 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
@@ -49,6 +49,7 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.function.Consumer;
import javax.annotation.Nullable;
/** Constructs actions to run the protocol compiler to generate sources from .proto files. */
@@ -578,14 +579,15 @@ public class ProtoCompileActionBuilder {
@Nullable NestedSet<Artifact> protosInDirectDependencies,
NestedSet<Artifact> transitiveImports) {
commandLine.addAll(
- VectorArg.of(transitiveImports).mapped(ProtoCompileActionBuilder::transitiveImportArg));
+ VectorArg.of(transitiveImports)
+ .mapped(ProtoCompileActionBuilder::expandTransitiveImportArg));
if (protosInDirectDependencies != null) {
if (!protosInDirectDependencies.isEmpty()) {
commandLine.addAll(
"--direct_dependencies",
VectorArg.join(":")
.each(protosInDirectDependencies)
- .mapped(ProtoCompileActionBuilder::getPathIgnoringRepository));
+ .mapped(ProtoCompileActionBuilder::expandToPathIgnoringRepository));
} else {
// The proto compiler requires an empty list to turn on strict deps checking
commandLine.add("--direct_dependencies=");
@@ -593,8 +595,12 @@ public class ProtoCompileActionBuilder {
}
}
- private static String transitiveImportArg(Artifact artifact) {
- return "-I" + getPathIgnoringRepository(artifact) + "=" + artifact.getExecPathString();
+ private static void expandTransitiveImportArg(Artifact artifact, Consumer<String> args) {
+ args.accept("-I" + getPathIgnoringRepository(artifact) + "=" + artifact.getExecPathString());
+ }
+
+ private static void expandToPathIgnoringRepository(Artifact artifact, Consumer<String> args) {
+ args.accept(getPathIgnoringRepository(artifact));
}
/**