aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar elenairina <elenairina@google.com>2018-04-16 06:27:56 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-16 06:29:11 -0700
commit81d999d40a42393ad5ddc8d889563fd3c431e409 (patch)
treeb6578390ce77d452067810e567c4d6b3e50e2d41 /src/main/java/com/google/devtools/build
parent83ed5461db0dab0a99ffdd8c76be8847ba1162bc (diff)
Create gen source jar in java_common.compile().
PiperOrigin-RevId: 193029216
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java18
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);