Merge "APEX now correctly tracks jni_lib dependencies"
This commit is contained in:
@@ -1216,7 +1216,7 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
if am, ok := child.(android.ApexModule); ok {
|
if am, ok := child.(android.ApexModule); ok {
|
||||||
// We cannot use a switch statement on `depTag` here as the checked
|
// We cannot use a switch statement on `depTag` here as the checked
|
||||||
// tags used below are private (e.g. `cc.sharedDepTag`).
|
// 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 cc, ok := child.(*cc.Module); ok {
|
||||||
if android.InList(cc.Name(), providedNativeSharedLibs) {
|
if android.InList(cc.Name(), providedNativeSharedLibs) {
|
||||||
// If we're using a shared library which is provided from other APEX,
|
// If we're using a shared library which is provided from other APEX,
|
||||||
|
@@ -2513,6 +2513,7 @@ func TestApexWithApps(t *testing.T) {
|
|||||||
srcs: ["foo/bar/MyClass.java"],
|
srcs: ["foo/bar/MyClass.java"],
|
||||||
sdk_version: "none",
|
sdk_version: "none",
|
||||||
system_modules: "none",
|
system_modules: "none",
|
||||||
|
jni_libs: ["libjni"],
|
||||||
}
|
}
|
||||||
|
|
||||||
android_app {
|
android_app {
|
||||||
@@ -2522,6 +2523,13 @@ func TestApexWithApps(t *testing.T) {
|
|||||||
system_modules: "none",
|
system_modules: "none",
|
||||||
privileged: true,
|
privileged: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cc_library_shared {
|
||||||
|
name: "libjni",
|
||||||
|
srcs: ["mylib.cpp"],
|
||||||
|
stl: "none",
|
||||||
|
system_shared_libs: [],
|
||||||
|
}
|
||||||
`)
|
`)
|
||||||
|
|
||||||
module := ctx.ModuleForTests("myapex", "android_common_myapex_image")
|
module := ctx.ModuleForTests("myapex", "android_common_myapex_image")
|
||||||
@@ -2530,6 +2538,7 @@ func TestApexWithApps(t *testing.T) {
|
|||||||
|
|
||||||
ensureContains(t, copyCmds, "image.apex/app/AppFoo/AppFoo.apk")
|
ensureContains(t, copyCmds, "image.apex/app/AppFoo/AppFoo.apk")
|
||||||
ensureContains(t, copyCmds, "image.apex/priv-app/AppFooPriv/AppFooPriv.apk")
|
ensureContains(t, copyCmds, "image.apex/priv-app/AppFooPriv/AppFooPriv.apk")
|
||||||
|
ensureContains(t, copyCmds, "image.apex/lib64/libjni.so")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestApexWithAppImports(t *testing.T) {
|
func TestApexWithAppImports(t *testing.T) {
|
||||||
|
@@ -430,6 +430,11 @@ type jniDependencyTag struct {
|
|||||||
target android.Target
|
target android.Target
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func IsJniDepTag(depTag blueprint.DependencyTag) bool {
|
||||||
|
_, ok := depTag.(*jniDependencyTag)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
staticLibTag = dependencyTag{name: "staticlib"}
|
staticLibTag = dependencyTag{name: "staticlib"}
|
||||||
libTag = dependencyTag{name: "javalib"}
|
libTag = dependencyTag{name: "javalib"}
|
||||||
|
Reference in New Issue
Block a user