aar_import doesn't export AndroidSkylarkApiProvider aar_import probably should give IDEs the same information as other rules, but it doesn't at the moment. Stop exporting the corresponding provider. RELNOTES: none PiperOrigin-RevId: 193701950
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 9972335..c44cc3f 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
@@ -204,7 +204,8 @@ common.addTransitiveInfoProviders( ruleBuilder, javaInfoBuilder, filesToBuild, /*classJar=*/ null); - resourceApk.addToConfiguredTargetBuilder(ruleBuilder, ruleContext.getLabel()); + resourceApk.addToConfiguredTargetBuilder( + ruleBuilder, ruleContext.getLabel(), /* includeSkylarkApiProvider = */ false); ruleBuilder .setFilesToBuild(filesToBuild)
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 22ae229..6abbb30 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
@@ -697,16 +697,18 @@ javaCommon.addGenJarsProvider(builder, javaInfoBuilder, genClassJar, genSourceJar); DataBinding.maybeAddProvider(builder, ruleContext); - JavaInfo javaInfo = javaInfoBuilder - .addProvider(JavaCompilationArgsProvider.class, compilationArgsProvider) - .addProvider(JavaRuleOutputJarsProvider.class, ruleOutputJarsProvider) - .addProvider(JavaSourceJarsProvider.class, sourceJarsProvider) - .addProvider(JavaPluginInfoProvider.class, JavaCommon.getTransitivePlugins(ruleContext)) - .setRuntimeJars(javaCommon.getJavaCompilationArtifacts().getRuntimeJars()) - .setNeverlink(isNeverlink) - .build(); + JavaInfo javaInfo = + javaInfoBuilder + .addProvider(JavaCompilationArgsProvider.class, compilationArgsProvider) + .addProvider(JavaRuleOutputJarsProvider.class, ruleOutputJarsProvider) + .addProvider(JavaSourceJarsProvider.class, sourceJarsProvider) + .addProvider(JavaPluginInfoProvider.class, JavaCommon.getTransitivePlugins(ruleContext)) + .setRuntimeJars(javaCommon.getJavaCompilationArtifacts().getRuntimeJars()) + .setNeverlink(isNeverlink) + .build(); - resourceApk.addToConfiguredTargetBuilder(builder, ruleContext.getLabel()); + resourceApk.addToConfiguredTargetBuilder( + builder, ruleContext.getLabel(), /* includeSkylarkApiProvider = */ true); return builder .setFilesToBuild(filesToBuild) @@ -825,8 +827,7 @@ private NestedSet<Artifact> collectHiddenTopLevelArtifacts(RuleContext ruleContext) { NestedSetBuilder<Artifact> builder = NestedSetBuilder.stableOrder(); for (OutputGroupInfo provider : - getTransitivePrerequisites( - ruleContext, Mode.TARGET, OutputGroupInfo.SKYLARK_CONSTRUCTOR)) { + getTransitivePrerequisites(ruleContext, Mode.TARGET, OutputGroupInfo.SKYLARK_CONSTRUCTOR)) { builder.addTransitive(provider.getOutputGroup(OutputGroupInfo.HIDDEN_TOP_LEVEL)); } return builder.build(); @@ -934,4 +935,3 @@ .build(); } } -
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceApk.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceApk.java index 21c517f..ec54de4 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceApk.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceApk.java
@@ -219,7 +219,8 @@ return resourceDeps.toInfo(validatedResources); } - public void addToConfiguredTargetBuilder(RuleConfiguredTargetBuilder builder, Label label) { + public void addToConfiguredTargetBuilder( + RuleConfiguredTargetBuilder builder, Label label, boolean includeSkylarkApiProvider) { AndroidResourcesInfo resourceInfo = toResourceInfo(label); builder.addNativeDeclaredProvider(resourceInfo); @@ -237,8 +238,10 @@ builder.addNativeDeclaredProvider(assetDeps.toInfo(label)); } - builder.addSkylarkTransitiveInfo( - AndroidSkylarkApiProvider.NAME, new AndroidSkylarkApiProvider(resourceInfo)); + if (includeSkylarkApiProvider) { + builder.addSkylarkTransitiveInfo( + AndroidSkylarkApiProvider.NAME, new AndroidSkylarkApiProvider(resourceInfo)); + } } /**