diff options
2 files changed, 25 insertions, 1 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 7ed003bcc2..d0d4db032a 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 @@ -586,7 +586,7 @@ public class ProtoCompileActionBuilder { } for (Artifact src : protosToCompile) { - cmdLine.addPath(src.getRootRelativePath()); + cmdLine.addPath(src.getExecPath()); } if (!allowServices) { diff --git a/src/test/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilderTest.java b/src/test/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilderTest.java index 72dc9c3489..0f6d3f5dab 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilderTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilderTest.java @@ -106,6 +106,30 @@ public class ProtoCompileActionBuilderTest { } @Test + public void commandline_derivedArtifact() { + // Verify that the command line contains the correct path to a generated protocol buffers. + SupportData supportData = + SupportData.create( + Predicates.<TransitiveInfoCollection>alwaysFalse(), + ImmutableList.of(derivedArtifact("//:dont-care", "source_file.proto")), + NestedSetBuilder.<Artifact>emptySet(STABLE_ORDER) /* protosInDirectDeps */, + NestedSetBuilder.<Artifact>emptySet(STABLE_ORDER) /* transitiveImports */, + true /* hasProtoSources */); + + CustomCommandLine cmdLine = + createCommandLineFromToolchains( + ImmutableList.<ToolchainInvocation>of() /* toolchainInvocations */, + supportData.getDirectProtoSources(), + supportData.getTransitiveImports(), + null /* protosInDirectDeps */, + "//foo:bar", + true /* allowServices */, + ImmutableList.<String>of() /* protocOpts */); + + assertThat(cmdLine.arguments()).containsExactly("out/source_file.proto"); + } + + @Test public void commandLine_strictDeps() throws Exception { ProtoLangToolchainProvider toolchain = ProtoLangToolchainProvider.create( |