diff options
author | 2016-08-26 22:38:27 +0000 | |
---|---|---|
committer | 2016-08-27 00:36:30 +0000 | |
commit | bfb3de3809a550da08c39f95d64d2a6f707f8add (patch) | |
tree | a9be3c179f7470a58712a18fac8475243dbcc8ed /src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java | |
parent | 629b4889e456b43692890e0e0e23d59237475c16 (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.java | 20 |
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; + } } |