aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
diff options
context:
space:
mode:
authorGravatar Alex Humesky <ahumesky@google.com>2016-08-26 22:38:27 +0000
committerGravatar John Cater <jcater@google.com>2016-08-27 00:36:30 +0000
commitbfb3de3809a550da08c39f95d64d2a6f707f8add (patch)
treea9be3c179f7470a58712a18fac8475243dbcc8ed /src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
parent629b4889e456b43692890e0e0e23d59237475c16 (diff)
Exclude resources jars from android_library rules from the apk_manifest
because they contain useless stub ids. -- MOS_MIGRATED_REVID=131449999
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
index 8867d77d8f..0b7f82df38 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
@@ -185,6 +185,11 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory {
androidSemantics.addTransitiveInfoProviders(
builder, ruleContext, javaCommon, androidCommon, null);
+ NestedSetBuilder<Artifact> transitiveResourcesJars = collectTransitiveResourceJars(ruleContext);
+ if (androidCommon.getResourceClassJar() != null) {
+ transitiveResourcesJars.add(androidCommon.getResourceClassJar());
+ }
+
builder
.add(AndroidNativeLibraryProvider.class,
new AndroidNativeLibraryProvider(transitiveNativeLibraries))
@@ -197,7 +202,9 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory {
new AndroidCcLinkParamsProvider(androidCommon.getCcLinkParamsStore()))
.add(JavaPluginInfoProvider.class, JavaCommon.getTransitivePlugins(ruleContext))
.add(ProguardSpecProvider.class, new ProguardSpecProvider(transitiveProguardConfigs))
- .addOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL, transitiveProguardConfigs);
+ .addOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL, transitiveProguardConfigs)
+ .add(AndroidLibraryResourceClassJarProvider.class,
+ new AndroidLibraryResourceClassJarProvider(transitiveResourcesJars.build()));
if (!JavaCommon.isNeverLink(ruleContext)) {
builder.add(AndroidLibraryAarProvider.class,
@@ -231,4 +238,15 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory {
}
return builder;
}
+
+ private NestedSetBuilder<Artifact> collectTransitiveResourceJars(RuleContext ruleContext) {
+ NestedSetBuilder<Artifact> builder = NestedSetBuilder.naiveLinkOrder();
+ Iterable<AndroidLibraryResourceClassJarProvider> providers =
+ AndroidCommon.getTransitivePrerequisites(
+ ruleContext, Mode.TARGET, AndroidLibraryResourceClassJarProvider.class);
+ for (AndroidLibraryResourceClassJarProvider resourceJarProvider : providers) {
+ builder.addTransitive(resourceJarProvider.getResourceClassJars());
+ }
+ return builder;
+ }
}