aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar Alex Humesky <ahumesky@google.com>2015-10-21 21:35:46 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2015-10-22 15:16:46 +0000
commitf7deff91dec0acba4a9199cb2f953be6b421d0bd (patch)
tree9ad68bc45ee86fb2f56b2f517013596f918538c9 /src/main
parent3e66b6e8163bdf49a65a02d422d109ffba170d26 (diff)
Description redacted.
-- MOS_MIGRATED_REVID=105999401
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java13
-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/JavaLibrary.java19
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java20
4 files changed, 17 insertions, 37 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 b8e5a41000..2712eb298e 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
@@ -55,7 +55,6 @@ import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider;
import com.google.devtools.build.lib.rules.java.JavaCompilationArtifacts;
import com.google.devtools.build.lib.rules.java.JavaCompilationHelper;
import com.google.devtools.build.lib.rules.java.JavaNativeLibraryProvider;
-import com.google.devtools.build.lib.rules.java.JavaPluginInfoProvider;
import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider;
import com.google.devtools.build.lib.rules.java.JavaRuntimeJarProvider;
import com.google.devtools.build.lib.rules.java.JavaSemantics;
@@ -89,7 +88,6 @@ public class AndroidCommon {
private NestedSet<Artifact> transitiveSourceJars = NestedSetBuilder.emptySet(Order.STABLE_ORDER);
private JavaCompilationArgs javaCompilationArgs = JavaCompilationArgs.EMPTY_ARGS;
private JavaCompilationArgs recursiveJavaCompilationArgs = JavaCompilationArgs.EMPTY_ARGS;
- private JavaPluginInfoProvider transitiveJavaPluginInfoProvider = JavaPluginInfoProvider.EMPTY;
private JackCompilationHelper jackCompilationHelper;
private Artifact classJar;
private Artifact iJar;
@@ -538,16 +536,8 @@ public class AndroidCommon {
topLevelSourceJars = ImmutableList.of(srcJar);
transitiveSourceJars = javaCommon.collectTransitiveSourceJars(srcJar);
- boolean hasSources = attributes.hasSourceFiles() || attributes.hasSourceJars();
-
- if (!hasSources) {
- // If this android rule has no sources, then it's a forwarding rule, so also forward
- // any exported java plugins from its deps.
- this.transitiveJavaPluginInfoProvider = JavaPluginInfoProvider.merge(
- javaCommon.getPluginInfoProvidersForAttribute("deps", Mode.TARGET));
- }
-
if (collectJavaCompilationArgs) {
+ boolean hasSources = attributes.hasSourceFiles() || attributes.hasSourceJars();
this.javaCompilationArgs =
collectJavaCompilationArgs(ruleContext, exportDeps, asNeverLink, hasSources);
this.recursiveJavaCompilationArgs = collectJavaCompilationArgs(
@@ -595,7 +585,6 @@ public class AndroidCommon {
asNeverLink
? jackCompilationHelper.compileAsNeverlinkLibrary()
: jackCompilationHelper.compileAsLibrary())
- .add(JavaPluginInfoProvider.class, transitiveJavaPluginInfoProvider)
.addOutputGroup(
OutputGroupProvider.HIDDEN_TOP_LEVEL, collectHiddenTopLevelArtifacts(ruleContext))
.addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars);
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 b7e6f785bc..fd9825f32b 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
@@ -665,7 +665,7 @@ public class JavaCommon {
return ImmutableList.copyOf(result);
}
- public Iterable<JavaPluginInfoProvider> getPluginInfoProvidersForAttribute(String attribute,
+ Iterable<JavaPluginInfoProvider> getPluginInfoProvidersForAttribute(String attribute,
Mode mode) {
if (ruleContext.attributes().has(attribute, BuildType.LABEL_LIST)) {
return ruleContext.getPrerequisites(attribute, mode, JavaPluginInfoProvider.class);
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 65b024f900..38b3b697a3 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
@@ -162,9 +162,19 @@ public class JavaLibrary implements RuleConfiguredTargetFactory {
NestedSet<LinkerInput> transitiveJavaNativeLibraries =
common.collectTransitiveJavaNativeLibraries();
- JavaPluginInfoProvider javaPluginInfoProvider = JavaPluginInfoProvider.merge(Iterables.concat(
- common.getPluginInfoProvidersForAttribute("exported_plugins", Mode.HOST),
- common.getPluginInfoProvidersForAttribute("exports", Mode.TARGET)));
+ ImmutableList<String> exportedProcessorClasses = ImmutableList.of();
+ NestedSet<Artifact> exportedProcessorClasspath =
+ NestedSetBuilder.emptySet(Order.NAIVE_LINK_ORDER);
+ ImmutableList.Builder<String> processorClasses = ImmutableList.builder();
+ NestedSetBuilder<Artifact> processorClasspath = NestedSetBuilder.naiveLinkOrder();
+ for (JavaPluginInfoProvider provider : Iterables.concat(
+ common.getPluginInfoProvidersForAttribute("exported_plugins", Mode.HOST),
+ common.getPluginInfoProvidersForAttribute("exports", Mode.TARGET))) {
+ processorClasses.addAll(provider.getProcessorClasses());
+ processorClasspath.addTransitive(provider.getProcessorClasspath());
+ }
+ exportedProcessorClasses = processorClasses.build();
+ exportedProcessorClasspath = processorClasspath.build();
CcLinkParamsStore ccLinkParamsStore = new CcLinkParamsStore() {
@Override
@@ -239,7 +249,8 @@ public class JavaLibrary implements RuleConfiguredTargetFactory {
.add(JavaSourceJarsProvider.class, new JavaSourceJarsProvider(
transitiveSourceJars, ImmutableList.of(srcJar)))
// TODO(bazel-team): this should only happen for java_plugin
- .add(JavaPluginInfoProvider.class, javaPluginInfoProvider)
+ .add(JavaPluginInfoProvider.class, new JavaPluginInfoProvider(
+ exportedProcessorClasses, exportedProcessorClasspath))
.add(ProguardSpecProvider.class, new ProguardSpecProvider(proguardSpecs))
.addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars)
.addOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL, proguardSpecs);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java
index 14339d9d6f..3b88b03261 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java
@@ -18,8 +18,6 @@ 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;
-import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
-import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
/**
@@ -27,25 +25,7 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
*/
@Immutable
public final class JavaPluginInfoProvider implements TransitiveInfoProvider {
-
- public static final JavaPluginInfoProvider EMPTY =
- new JavaPluginInfoProvider(
- ImmutableList.<String>of(),
- NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER));
- public static JavaPluginInfoProvider merge(Iterable<JavaPluginInfoProvider> providers) {
-
- ImmutableList.Builder<String> processorClasses = ImmutableList.builder();
- NestedSetBuilder<Artifact> processorClasspath = NestedSetBuilder.naiveLinkOrder();
-
- for (JavaPluginInfoProvider provider : providers) {
- processorClasses.addAll(provider.getProcessorClasses());
- processorClasspath.addTransitive(provider.getProcessorClasspath());
- }
-
- return new JavaPluginInfoProvider(processorClasses.build(), processorClasspath.build());
- }
-
private final ImmutableList<String> processorClasses;
private final NestedSet<Artifact> processorClasspath;