diff options
author | tomlu <tomlu@google.com> | 2018-02-01 07:21:27 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-01 07:23:16 -0800 |
commit | a904b85376251775d58852a0e8480c0db032bac8 (patch) | |
tree | 83e846c6cfebee7259f093661e9313d4fc9338f8 /src/main/java/com/google/devtools/build/lib/rules/proto | |
parent | 5a50a7c403e567b850d5037d1ee0dad96be0b39d (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')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java | 14 |
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)); } /** |