APEX now correctly tracks jni_lib dependencies
Bug: 144135069
Test: m (apex_test.go amended)
Change-Id: If9dde4e2e62c2642267dbcac68bab76a032682c0
diff --git a/apex/apex.go b/apex/apex.go
index 4e6827f..95ef8b4 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -1196,7 +1196,7 @@
if am, ok := child.(android.ApexModule); ok {
// We cannot use a switch statement on `depTag` here as the checked
// tags used below are private (e.g. `cc.sharedDepTag`).
- if cc.IsSharedDepTag(depTag) || cc.IsRuntimeDepTag(depTag) {
+ if cc.IsSharedDepTag(depTag) || cc.IsRuntimeDepTag(depTag) || java.IsJniDepTag(depTag) {
if cc, ok := child.(*cc.Module); ok {
if android.InList(cc.Name(), providedNativeSharedLibs) {
// If we're using a shared library which is provided from other APEX,
diff --git a/apex/apex_test.go b/apex/apex_test.go
index 77c1fb0..754b6a6 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -2460,6 +2460,7 @@
srcs: ["foo/bar/MyClass.java"],
sdk_version: "none",
system_modules: "none",
+ jni_libs: ["libjni"],
}
android_app {
@@ -2469,6 +2470,13 @@
system_modules: "none",
privileged: true,
}
+
+ cc_library_shared {
+ name: "libjni",
+ srcs: ["mylib.cpp"],
+ stl: "none",
+ system_shared_libs: [],
+ }
`)
module := ctx.ModuleForTests("myapex", "android_common_myapex_image")
@@ -2477,6 +2485,7 @@
ensureContains(t, copyCmds, "image.apex/app/AppFoo/AppFoo.apk")
ensureContains(t, copyCmds, "image.apex/priv-app/AppFooPriv/AppFooPriv.apk")
+ ensureContains(t, copyCmds, "image.apex/lib64/libjni.so")
}
func TestApexWithAppImports(t *testing.T) {