aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2016-09-20 14:46:06 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2016-09-21 07:06:00 +0000
commit63010255876a81cf2b0bc4fc5d95a0e1a99df58d (patch)
tree1a78efb227c11c524936c2bdf589d1ec8be0be1f /src/main/java/com/google/devtools/build/lib/rules
parent96d46280bc5a4803ba2242a4ad16939f85a3b212 (diff)
Expose processor classpath and classnames to Skylark.
-- MOS_MIGRATED_REVID=133704700
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java28
2 files changed, 30 insertions, 0 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 10a3ce704a..9fe251e6f9 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
@@ -399,6 +399,8 @@ public class JavaCommon {
usesAnnotationProcessing,
genClassJar,
genSourceJar,
+ getProcessorClasspathJars(),
+ getProcessorClassNames(),
classJarsBuilder.build(),
sourceJarsBuilder.build()
);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
index dbcd487d0e..817b14a97c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.rules.java;
+import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -38,6 +39,10 @@ public final class JavaGenJarsProvider implements TransitiveInfoProvider {
private final Artifact genClassJar;
@Nullable
private final Artifact genSourceJar;
+
+ private final ImmutableList<Artifact> processorClasspath;
+ private final ImmutableList<String> processorClassNames;
+
private final NestedSet<Artifact> transitiveGenClassJars;
private final NestedSet<Artifact> transitiveGenSourceJars;
@@ -45,11 +50,14 @@ public final class JavaGenJarsProvider implements TransitiveInfoProvider {
boolean usesAnnotationProcessing,
@Nullable Artifact genClassJar,
@Nullable Artifact genSourceJar,
+ ImmutableList<Artifact> processorClasspath, ImmutableList<String> processorClassNames,
NestedSet<Artifact> transitiveGenClassJars,
NestedSet<Artifact> transitiveGenSourceJars) {
this.usesAnnotationProcessing = usesAnnotationProcessing;
this.genClassJar = genClassJar;
this.genSourceJar = genSourceJar;
+ this.processorClasspath = processorClasspath;
+ this.processorClassNames = processorClassNames;
this.transitiveGenClassJars = transitiveGenClassJars;
this.transitiveGenSourceJars = transitiveGenSourceJars;
}
@@ -106,4 +114,24 @@ public final class JavaGenJarsProvider implements TransitiveInfoProvider {
public NestedSet<Artifact> getTransitiveGenSourceJars() {
return transitiveGenSourceJars;
}
+
+ @SkylarkCallable(
+ name = "processor_classpath",
+ structField = true,
+ doc =
+ "Returns a classpath of annotation processors applied to this rule."
+ )
+ public ImmutableList<Artifact> getProcessorClasspath() {
+ return processorClasspath;
+ }
+
+ @SkylarkCallable(
+ name = "processor_classnames",
+ structField = true,
+ doc =
+ "Returns class names of annotation processors applied to this rule."
+ )
+ public ImmutableList<String> getProcessorClassNames() {
+ return processorClassNames;
+ }
}