Loading apex/apex.go +3 −0 Original line number Diff line number Diff line Loading @@ -2008,6 +2008,9 @@ func (vctx *visitorContext) normalizeFileInfo(mctx android.ModuleContext) { // If a module is directly included and also transitively depended on // consider it as directly included. e.transitiveDep = e.transitiveDep && f.transitiveDep // If a module is added as both a JNI library and a regular shared library, consider it as a // JNI library. e.isJniLib = e.isJniLib || f.isJniLib encountered[dest] = e } } Loading apex/apex_test.go +23 −2 Original line number Diff line number Diff line Loading @@ -7977,7 +7977,8 @@ func TestApexWithJniLibs(t *testing.T) { apex { name: "myapex", key: "myapex.key", jni_libs: ["mylib", "libfoo.rust"], binaries: ["mybin"], jni_libs: ["mylib", "mylib3", "libfoo.rust"], updatable: false, } Loading @@ -8004,6 +8005,24 @@ func TestApexWithJniLibs(t *testing.T) { apex_available: [ "myapex" ], } // Used as both a JNI library and a regular shared library. cc_library { name: "mylib3", srcs: ["mylib.cpp"], system_shared_libs: [], stl: "none", apex_available: [ "myapex" ], } cc_binary { name: "mybin", srcs: ["mybin.cpp"], shared_libs: ["mylib3"], system_shared_libs: [], stl: "none", apex_available: [ "myapex" ], } rust_ffi_shared { name: "libfoo.rust", crate_name: "foo", Loading @@ -8027,10 +8046,12 @@ func TestApexWithJniLibs(t *testing.T) { rule := ctx.ModuleForTests("myapex", "android_common_myapex").Rule("apexManifestRule") // Notice mylib2.so (transitive dep) is not added as a jni_lib ensureEquals(t, rule.Args["opt"], "-a jniLibs libfoo.rust.so mylib.so") ensureEquals(t, rule.Args["opt"], "-a jniLibs libfoo.rust.so mylib.so mylib3.so") ensureExactContents(t, ctx, "myapex", "android_common_myapex", []string{ "bin/mybin", "lib64/mylib.so", "lib64/mylib2.so", "lib64/mylib3.so", "lib64/libfoo.rust.so", "lib64/libc++.so", // auto-added to libfoo.rust by Soong "lib64/liblog.so", // auto-added to libfoo.rust by Soong Loading Loading
apex/apex.go +3 −0 Original line number Diff line number Diff line Loading @@ -2008,6 +2008,9 @@ func (vctx *visitorContext) normalizeFileInfo(mctx android.ModuleContext) { // If a module is directly included and also transitively depended on // consider it as directly included. e.transitiveDep = e.transitiveDep && f.transitiveDep // If a module is added as both a JNI library and a regular shared library, consider it as a // JNI library. e.isJniLib = e.isJniLib || f.isJniLib encountered[dest] = e } } Loading
apex/apex_test.go +23 −2 Original line number Diff line number Diff line Loading @@ -7977,7 +7977,8 @@ func TestApexWithJniLibs(t *testing.T) { apex { name: "myapex", key: "myapex.key", jni_libs: ["mylib", "libfoo.rust"], binaries: ["mybin"], jni_libs: ["mylib", "mylib3", "libfoo.rust"], updatable: false, } Loading @@ -8004,6 +8005,24 @@ func TestApexWithJniLibs(t *testing.T) { apex_available: [ "myapex" ], } // Used as both a JNI library and a regular shared library. cc_library { name: "mylib3", srcs: ["mylib.cpp"], system_shared_libs: [], stl: "none", apex_available: [ "myapex" ], } cc_binary { name: "mybin", srcs: ["mybin.cpp"], shared_libs: ["mylib3"], system_shared_libs: [], stl: "none", apex_available: [ "myapex" ], } rust_ffi_shared { name: "libfoo.rust", crate_name: "foo", Loading @@ -8027,10 +8046,12 @@ func TestApexWithJniLibs(t *testing.T) { rule := ctx.ModuleForTests("myapex", "android_common_myapex").Rule("apexManifestRule") // Notice mylib2.so (transitive dep) is not added as a jni_lib ensureEquals(t, rule.Args["opt"], "-a jniLibs libfoo.rust.so mylib.so") ensureEquals(t, rule.Args["opt"], "-a jniLibs libfoo.rust.so mylib.so mylib3.so") ensureExactContents(t, ctx, "myapex", "android_common_myapex", []string{ "bin/mybin", "lib64/mylib.so", "lib64/mylib2.so", "lib64/mylib3.so", "lib64/libfoo.rust.so", "lib64/libc++.so", // auto-added to libfoo.rust by Soong "lib64/liblog.so", // auto-added to libfoo.rust by Soong Loading