diff options
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java | 5 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java | 26 |
2 files changed, 29 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 9617d95063..950f7edebf 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 @@ -122,7 +122,10 @@ public class AarImport implements RuleConfiguredTargetFactory { } ImmutableList<TransitiveInfoCollection> targets = - ImmutableList.copyOf(ruleContext.getPrerequisites("exports", Mode.TARGET)); + ImmutableList.<TransitiveInfoCollection>builder() + .addAll(ruleContext.getPrerequisites("exports", Mode.TARGET)) + .addAll(ruleContext.getPrerequisites("deps", Mode.TARGET)) + .build(); JavaCommon common = new JavaCommon( ruleContext, diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java index 633c934478..b8616517e8 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java @@ -17,6 +17,7 @@ import static com.google.common.truth.Truth.assertThat; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; +import com.google.devtools.build.lib.actions.Action; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.util.ActionsTestUtil; import com.google.devtools.build.lib.analysis.ConfiguredTarget; @@ -46,14 +47,20 @@ public class AarImportTest extends BuildViewTestCase { " aar = 'foo.aar',", ")", "aar_import(", + " name = 'baz',", + " aar = 'baz.aar',", + ")", + "aar_import(", " name = 'bar',", " aar = 'bar.aar',", + " deps = [':baz'],", " exports = [':foo', '//java:baz'],", ")"); scratch.file("java/BUILD", "android_binary(", " name = 'app',", " manifest = 'AndroidManifest.xml',", + " srcs = ['App.java'],", " deps = ['//a:bar'],", ")", "android_library(", @@ -124,7 +131,8 @@ public class AarImportTest extends BuildViewTestCase { androidLibraryTarget.getProvider(NativeLibsZipsProvider.class).getAarNativeLibs(); assertThat(nativeLibs).containsExactly( ActionsTestUtil.getFirstArtifactEndingWith(nativeLibs, "foo/native_libs.zip"), - ActionsTestUtil.getFirstArtifactEndingWith(nativeLibs, "bar/native_libs.zip")); + ActionsTestUtil.getFirstArtifactEndingWith(nativeLibs, "bar/native_libs.zip"), + ActionsTestUtil.getFirstArtifactEndingWith(nativeLibs, "baz/native_libs.zip")); } @Test @@ -180,6 +188,22 @@ public class AarImportTest extends BuildViewTestCase { } @Test + public void testDepsPropagatesMergedAarJars() throws Exception { + Action appCompileAction = + getGeneratingAction( + ActionsTestUtil.getFirstArtifactEndingWith( + actionsTestUtil().artifactClosureOf( + getFileConfiguredTarget("//java:app.apk").getArtifact()), + "libapp.jar")); + assertThat(appCompileAction).isNotNull(); + assertThat(ActionsTestUtil.prettyArtifactNames(appCompileAction.getInputs())) + .containsAllOf( + "a/_aar/foo/classes_and_libs_merged.jar", + "a/_aar/bar/classes_and_libs_merged.jar", + "a/_aar/baz/classes_and_libs_merged.jar"); + } + + @Test public void testExportsPropagatesMergedAarJars() throws Exception { FileConfiguredTarget appTarget = getFileConfiguredTarget("//java:app.apk"); Set<Artifact> artifacts = actionsTestUtil().artifactClosureOf(appTarget.getArtifact()); |