diff options
author | Alex Humesky <ahumesky@google.com> | 2015-07-09 14:50:54 +0000 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@google.com> | 2015-07-10 17:19:04 +0000 |
commit | 8e0ae3ce8f545f5606e07c2e6198c3ea9e101afb (patch) | |
tree | d84ac069129b277dc23b2c62f4c693454efe35e9 /src/main/java/com/google | |
parent | 6f826935322eee2ec478471307b4b4a59d5a473c (diff) |
Adds an output group for gen jars.
--
MOS_MIGRATED_REVID=97872859
Diffstat (limited to 'src/main/java/com/google')
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. */ |