aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar ajmichael <ajmichael@google.com>2018-02-26 11:32:57 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-26 11:34:28 -0800
commit677e6f7e446e16376b64fe68b772ad65820449b8 (patch)
tree42fb41fddfb3a612d06b2da37343eb642bb7d604 /src/main/java
parent06374a8c0f1e6a4bae18a1ffa08f4309c84f8289 (diff)
RELNOTES: aar_import now sets java.transitive_exports.
This field is needed by the Android Studio with Bazel plugin. PiperOrigin-RevId: 187053906
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java25
1 files changed, 10 insertions, 15 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java b/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java
index 7be723d608..51aa58c6b7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java
@@ -25,13 +25,13 @@ import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode;
+import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.rules.java.JavaCommon;
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.JavaInfo;
import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider;
-import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider.OutputJar;
import com.google.devtools.build.lib.rules.java.JavaRuntimeInfo;
import com.google.devtools.build.lib.rules.java.JavaRuntimeJarProvider;
import com.google.devtools.build.lib.rules.java.JavaSemantics;
@@ -105,21 +105,14 @@ public class AarImport implements RuleConfiguredTargetFactory {
// build could be empty. The resources zip and merged jars are added here as a sanity check for
// Bazel developers so that `bazel build java/com/my_aar_import` will fail if the resource
// processing or jar merging steps fail.
- NestedSetBuilder<Artifact> filesToBuildBuilder =
- NestedSetBuilder.<Artifact>stableOrder().add(resourcesZip).add(mergedJar);
+ NestedSet<Artifact> filesToBuild =
+ NestedSetBuilder.<Artifact>stableOrder().add(resourcesZip).add(mergedJar).build();
Artifact nativeLibs = createAarArtifact(ruleContext, "native_libs.zip");
ruleContext.registerAction(createAarNativeLibsFilterActions(ruleContext, aar, nativeLibs));
JavaRuleOutputJarsProvider.Builder jarProviderBuilder =
new JavaRuleOutputJarsProvider.Builder().addOutputJar(mergedJar, null, ImmutableList.of());
- for (TransitiveInfoCollection export : ruleContext.getPrerequisites("exports", Mode.TARGET)) {
- for (OutputJar jar :
- JavaInfo.getProvider(JavaRuleOutputJarsProvider.class, export).getOutputJars()) {
- jarProviderBuilder.addOutputJar(jar);
- filesToBuildBuilder.add(jar.getClassJar());
- }
- }
ImmutableList<TransitiveInfoCollection> targets =
ImmutableList.<TransitiveInfoCollection>builder()
@@ -140,7 +133,7 @@ public class AarImport implements RuleConfiguredTargetFactory {
.addCompileTimeJarAsFullJar(mergedJar)
.build());
- JavaInfo javaInfo =
+ JavaInfo.Builder javaInfoBuilder =
JavaInfo.Builder.create()
.addProvider(
JavaCompilationArgsProvider.class,
@@ -153,11 +146,13 @@ public class AarImport implements RuleConfiguredTargetFactory {
/* recursive = */ true,
JavaCommon.isNeverLink(ruleContext),
/* srcLessDepsExport = */ false)))
- .addProvider(JavaRuleOutputJarsProvider.class, jarProviderBuilder.build())
- .build();
+ .addProvider(JavaRuleOutputJarsProvider.class, jarProviderBuilder.build());
+
+ common.addTransitiveInfoProviders(
+ ruleBuilder, javaInfoBuilder, filesToBuild, /*classJar=*/ null);
return ruleBuilder
- .setFilesToBuild(filesToBuildBuilder.build())
+ .setFilesToBuild(filesToBuild)
.addSkylarkTransitiveInfo(
JavaSkylarkApiProvider.NAME, JavaSkylarkApiProvider.fromRuleContext())
.addProvider(RunfilesProvider.class, RunfilesProvider.EMPTY)
@@ -167,7 +162,7 @@ public class AarImport implements RuleConfiguredTargetFactory {
AndroidCommon.collectTransitiveNativeLibs(ruleContext).add(nativeLibs).build()))
.addProvider(
JavaRuntimeJarProvider.class, new JavaRuntimeJarProvider(ImmutableList.of(mergedJar)))
- .addNativeDeclaredProvider(javaInfo)
+ .addNativeDeclaredProvider(javaInfoBuilder.build())
.build();
}