aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Alex Humesky <ahumesky@google.com>2015-07-09 14:50:54 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-07-10 17:19:04 +0000
commit8e0ae3ce8f545f5606e07c2e6198c3ea9e101afb (patch)
treed84ac069129b277dc23b2c62f4c693454efe35e9 /src/main/java/com/google
parent6f826935322eee2ec478471307b4b4a59d5a473c (diff)
Adds an output group for gen jars.
-- MOS_MIGRATED_REVID=97872859
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java7
4 files changed, 16 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
index 8af0c76269..cdb532c984 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
@@ -96,8 +96,9 @@ public class AndroidCommon {
private JavaCompilationArgs javaCompilationArgs = JavaCompilationArgs.EMPTY_ARGS;
private JavaCompilationArgs recursiveJavaCompilationArgs = JavaCompilationArgs.EMPTY_ARGS;
private JackCompilationHelper jackCompilationHelper;
- private Artifact srcJar;
private Artifact classJar;
+ private Artifact srcJar;
+ private Artifact genJar;
private Artifact gensrcJar;
private Collection<Artifact> idls;
@@ -467,8 +468,8 @@ public class AndroidCommon {
Artifact manifestProtoOutput = helper.createManifestProtoOutput(classJar);
// AndroidBinary will pass its -gen.jar output, and AndroidLibrary will pass its own.
- Artifact genClassJar = ruleContext.getImplicitOutputArtifact(genClassJarImplicitOutput);
- helper.createGenJarAction(classJar, manifestProtoOutput, genClassJar);
+ genJar = ruleContext.getImplicitOutputArtifact(genClassJarImplicitOutput);
+ helper.createGenJarAction(classJar, manifestProtoOutput, genJar);
srcJar = ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_LIBRARY_SOURCE_JAR);
helper.createSourceJarAction(srcJar, gensrcJar);
@@ -545,7 +546,8 @@ public class AndroidCommon {
: jackCompilationHelper.compileAsLibrary())
.addOutputGroup(
OutputGroupProvider.HIDDEN_TOP_LEVEL, collectHiddenTopLevelArtifacts(ruleContext))
- .addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars);
+ .addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars)
+ .addOutputGroup(JavaSemantics.GENERATED_JARS_OUTPUT_GROUP, genJar);
}
public static PathFragment getAssetDir(RuleContext ruleContext) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
index 763bcf6acc..3c45f8a0f3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
@@ -242,6 +242,7 @@ public class JavaBinary implements RuleConfiguredTargetFactory {
.add(JavaSourceJarsProvider.class,
new JavaSourceJarsProvider(transitiveSourceJars, srcJars))
.addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars)
+ .addOutputGroup(JavaSemantics.GENERATED_JARS_OUTPUT_GROUP, genClassJar)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java
index 1355e6f23f..ab303725f1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java
@@ -241,7 +241,8 @@ public class JavaLibrary implements RuleConfiguredTargetFactory {
// TODO(bazel-team): this should only happen for java_plugin
.add(JavaPluginInfoProvider.class, new JavaPluginInfoProvider(
exportedProcessorClasses, exportedProcessorClasspath))
- .addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars);
+ .addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars)
+ .addOutputGroup(JavaSemantics.GENERATED_JARS_OUTPUT_GROUP, genClassJar);
if (ruleContext.hasErrors()) {
return null;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
index 5f17262706..354467c55f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
@@ -99,6 +99,13 @@ public interface JavaSemantics {
OutputGroupProvider.HIDDEN_OUTPUT_GROUP_PREFIX + "source_jars";
/**
+ * Name of the output group used for gen jars (the jars containing the class files for sources
+ * generated from annotation processors).
+ */
+ public static final String GENERATED_JARS_OUTPUT_GROUP =
+ OutputGroupProvider.HIDDEN_OUTPUT_GROUP_PREFIX + "gen_jars";
+
+ /**
* Label of a pseudo-filegroup that contains all jdk files for all
* configurations, as specified on the command-line.
*/