diff options
author | ajmichael <ajmichael@google.com> | 2018-02-26 11:32:57 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-26 11:34:28 -0800 |
commit | 677e6f7e446e16376b64fe68b772ad65820449b8 (patch) | |
tree | 42fb41fddfb3a612d06b2da37343eb642bb7d604 /src/main/java | |
parent | 06374a8c0f1e6a4bae18a1ffa08f4309c84f8289 (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.java | 25 |
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(); } |