diff options
author | Adam Michael <ajmichael@google.com> | 2016-12-05 18:32:03 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2016-12-06 12:04:39 +0000 |
commit | c645a45204b5ee4698387b0487b8a5136ba6d06f (patch) | |
tree | bf78b3df9037f0859449d1db25a73d4ed4cb34c0 /src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java | |
parent | 1fccb31837f344e05b4e291d117e2b7e26eddc76 (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.java | 11 |
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)); |