From c645a45204b5ee4698387b0487b8a5136ba6d06f Mon Sep 17 00:00:00 2001 From: Adam Michael Date: Mon, 5 Dec 2016 18:32:03 +0000 Subject: 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 --- .../google/devtools/build/lib/rules/android/AarImport.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java') 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(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 filesToBuildBuilder = - NestedSetBuilder.stableOrder().add(resources).add(mergedJar); + NestedSetBuilder.stableOrder().add(resourcesZip).add(mergedJar); Artifact nativeLibs = createAarArtifact(ruleContext, "native_libs.zip"); ruleContext.registerAction(createAarNativeLibsFilterActions(ruleContext, aar, nativeLibs)); -- cgit v1.2.3