From 8be103b04c72663e34823640eb5cef919755f527 Mon Sep 17 00:00:00 2001 From: Jiyong Park Date: Fri, 8 Nov 2019 15:53:48 +0900 Subject: [PATCH] APEX now correctly tracks jni_lib dependencies Bug: 144135069 Test: m (apex_test.go amended) Change-Id: If9dde4e2e62c2642267dbcac68bab76a032682c0 --- apex/apex.go | 2 +- apex/apex_test.go | 9 +++++++++ java/java.go | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/apex/apex.go b/apex/apex.go index 4e6827f62..95ef8b4f7 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -1196,7 +1196,7 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { 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 77c1fb035..754b6a62a 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -2460,6 +2460,7 @@ func TestApexWithApps(t *testing.T) { srcs: ["foo/bar/MyClass.java"], sdk_version: "none", system_modules: "none", + jni_libs: ["libjni"], } android_app { @@ -2469,6 +2470,13 @@ func TestApexWithApps(t *testing.T) { 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 @@ func TestApexWithApps(t *testing.T) { 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) { diff --git a/java/java.go b/java/java.go index d7077d1bb..cafba2215 100644 --- a/java/java.go +++ b/java/java.go @@ -430,6 +430,11 @@ type jniDependencyTag struct { target android.Target } +func IsJniDepTag(depTag blueprint.DependencyTag) bool { + _, ok := depTag.(*jniDependencyTag) + return ok +} + var ( staticLibTag = dependencyTag{name: "staticlib"} libTag = dependencyTag{name: "javalib"}