diff options
author | elenairina <elenairina@google.com> | 2018-04-16 06:27:56 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-16 06:29:11 -0700 |
commit | 81d999d40a42393ad5ddc8d889563fd3c431e409 (patch) | |
tree | b6578390ce77d452067810e567c4d6b3e50e2d41 /src/main/java/com/google/devtools/build | |
parent | 83ed5461db0dab0a99ffdd8c76be8847ba1162bc (diff) |
Create gen source jar in java_common.compile().
PiperOrigin-RevId: 193029216
Diffstat (limited to 'src/main/java/com/google/devtools/build')
3 files changed, 32 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java index 3c37112911..2a86144f48 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java @@ -467,6 +467,10 @@ public class JavaCommon { return JavaRuntimeInfo.forHost(ruleContext).javaBinaryExecPath(); } + public static PathFragment getHostJavaExecutable(JavaRuntimeInfo javaRuntime) { + return javaRuntime.javaBinaryExecPath(); + } + public static PathFragment getJavaExecutable(RuleContext ruleContext) { return JavaRuntimeInfo.from(ruleContext).javaBinaryExecPath(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java index faab225a5e..fdd0c26082 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java @@ -479,8 +479,18 @@ public final class JavaCompilationHelper { * @param manifestProto The artifact for the manifest proto emitted from JavaBuilder * @param genClassJar The artifact for the gen jar to output */ - public void createGenJarAction(Artifact classJar, Artifact manifestProto, + public void createGenJarAction( + Artifact classJar, + Artifact manifestProto, Artifact genClassJar) { + createGenJarAction( + classJar, manifestProto, genClassJar, JavaRuntimeInfo.forHost(getRuleContext())); + } + + public void createGenJarAction(Artifact classJar, + Artifact manifestProto, + Artifact genClassJar, + JavaRuntimeInfo hostJavabase) { getRuleContext() .registerAction( new SpawnAction.Builder() @@ -488,9 +498,9 @@ public final class JavaCompilationHelper { .addInput(classJar) .addOutput(genClassJar) .addTransitiveInputs( - JavaRuntimeInfo.forHost(getRuleContext()).javaBaseInputsMiddleman()) + hostJavabase.javaBaseInputsMiddleman()) .setJarExecutable( - JavaCommon.getHostJavaExecutable(ruleContext), + JavaCommon.getHostJavaExecutable(hostJavabase), getGenClassJar(ruleContext), javaToolchain.getJvmOptions()) .addCommandLine( diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java index 93197acb9a..47a214d1af 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java @@ -214,10 +214,21 @@ public final class JavaLibraryHelper { hostJavabase, jacocoInstrumental); Artifact outputDepsProto = helper.createOutputDepsProtoArtifact(output, artifactsBuilder); + + Artifact manifestProtoOutput = helper.createManifestProtoOutput(output); + + Artifact genSourceJar = null; + Artifact genClassJar = null; + if (helper.usesAnnotationProcessing()) { + genClassJar = helper.createGenJar(output); + genSourceJar = helper.createGensrcJar(output); + helper.createGenJarAction(output, manifestProtoOutput, genClassJar, hostJavabase); + } + helper.createCompileAction( output, - /* manifestProtoOutput= */ null, - /* gensrcOutputJar= */ null, + manifestProtoOutput, + genSourceJar, outputDepsProto, /* instrumentationMetadataJar= */ null, /* nativeHeaderOutput= */ null); @@ -226,7 +237,8 @@ public final class JavaLibraryHelper { Artifact iJar = helper.createCompileTimeJarAction(output, artifactsBuilder); if (createOutputSourceJar) { - helper.createSourceJarAction(outputSourceJar, null, javaToolchainProvider, hostJavabase); + helper.createSourceJarAction( + outputSourceJar, genSourceJar, javaToolchainProvider, hostJavabase); } ImmutableList<Artifact> outputSourceJars = outputSourceJar == null ? ImmutableList.of() : ImmutableList.of(outputSourceJar); |