aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java
diff options
context:
space:
mode:
authorGravatar Adam Michael <ajmichael@google.com>2016-12-05 18:32:03 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-12-06 12:04:39 +0000
commitc645a45204b5ee4698387b0487b8a5136ba6d06f (patch)
treebf78b3df9037f0859449d1db25a73d4ed4cb34c0 /src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java
parent1fccb31837f344e05b4e291d117e2b7e26eddc76 (diff)
Make aar_import always process the resources.
Previously, the FilesToBuild included the unprocessed resources. This meant that some bugs did not manifest themselves by building just the aar_import but only showed up if the aar_import was depended on by an android_library. -- PiperOrigin-RevId: 141068502 MOS_MIGRATED_REVID=141068502
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java11
1 files changed, 9 insertions, 2 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 b993fb052d..8e06123816 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
@@ -82,6 +82,9 @@ public class AarImport implements RuleConfiguredTargetFactory {
FileProvider resourcesProvider = new FileProvider(
new NestedSetBuilder<Artifact>(Order.NAIVE_LINK_ORDER).add(resources).build());
+ Artifact resourcesZip =
+ ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_RESOURCES_ZIP);
+
ResourceApk resourceApk = androidManifest.packWithDataAndResources(
ruleContext,
new LocalResourceContainer.Builder(ruleContext)
@@ -91,11 +94,15 @@ public class AarImport implements RuleConfiguredTargetFactory {
ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_R_TXT),
ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_SYMBOLS_TXT),
ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_PROCESSED_MANIFEST),
- ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_RESOURCES_ZIP),
+ resourcesZip,
/* alwaysExportManifest = */ true);
+ // There isn't really any use case for building an aar_import target on its own, so the files to
+ // 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(resources).add(mergedJar);
+ NestedSetBuilder.<Artifact>stableOrder().add(resourcesZip).add(mergedJar);
Artifact nativeLibs = createAarArtifact(ruleContext, "native_libs.zip");
ruleContext.registerAction(createAarNativeLibsFilterActions(ruleContext, aar, nativeLibs));