blob: e14aea2e4c344dfdb7132b384c78d5cea935cc5e [file] [log] [blame] [edit]
// Shared library for target
// ========================================================
package {
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "art_license"
// to get the below license kinds:
// SPDX-license-identifier-Apache-2.0
default_applicable_licenses: ["art_license"],
}
cc_defaults {
name: "libnativeloader-defaults",
defaults: ["art_defaults"],
header_libs: ["libnativeloader-headers"],
export_header_lib_headers: ["libnativeloader-headers"],
}
art_cc_library {
name: "libnativeloader",
defaults: ["libnativeloader-defaults"],
visibility: [
"//frameworks/base/cmds/app_process",
// TODO(b/133140750): Clean this up.
"//frameworks/base/native/webview/loader",
],
apex_available: [
"com.android.art",
"com.android.art.debug",
],
host_supported: true,
srcs: [
"native_loader.cpp",
],
header_libs: [
"libnativehelper_header_only",
],
shared_libs: [
"liblog",
"libnativebridge",
"libbase",
],
target: {
// Library search path needed for running host tests remotely (from testcases directory).
linux_glibc_x86: {
ldflags: [
"-Wl,-rpath,$ORIGIN/../art_common/out/host/linux-x86/lib",
"-Wl,--enable-new-dtags",
],
},
linux_glibc_x86_64: {
ldflags: [
"-Wl,-rpath,$ORIGIN/../art_common/out/host/linux-x86/lib64",
"-Wl,--enable-new-dtags",
],
},
android: {
srcs: [
"library_namespaces.cpp",
"native_loader_namespace.cpp",
"public_libraries.cpp",
],
shared_libs: [
"libdl_android",
],
static_libs: [
"PlatformProperties",
],
},
},
stubs: {
symbol_file: "libnativeloader.map.txt",
versions: ["1"],
},
}
// TODO(b/124250621) eliminate the need for this library
cc_library {
name: "libnativeloader_lazy",
defaults: ["libnativeloader-defaults"],
visibility: [
"//frameworks/base/core/jni",
"//frameworks/native/opengl/libs",
"//frameworks/native/vulkan/libvulkan",
],
apex_available: [
"//apex_available:platform",
"com.android.media",
"com.android.media.swcodec",
],
host_supported: false,
srcs: ["native_loader_lazy.cpp"],
runtime_libs: ["libnativeloader"],
shared_libs: ["liblog"],
}
cc_library_headers {
name: "libnativeloader-headers",
defaults: ["art_defaults"],
apex_available: [
"//apex_available:platform",
"com.android.art",
"com.android.art.debug",
"com.android.media",
],
visibility: [
"//art:__subpackages__",
// TODO(b/133140750): Clean this up.
"//frameworks/av/media/libstagefright",
"//frameworks/native/libs/graphicsenv",
"//frameworks/native/vulkan/libvulkan",
],
host_supported: true,
export_include_dirs: ["include"],
header_libs: ["jni_headers"],
export_header_lib_headers: ["jni_headers"],
}
cc_defaults {
name: "libnativeloader-test-defaults",
defaults: [
"art_module_source_build_defaults",
"art_test_defaults",
],
host_supported: false,
cflags: ["-DANDROID"],
// The tests mock libdl_android and libnativebridge symbols, so export them
// to override the ones loaded from their libs.
ldflags: [
"-Wl,--export-dynamic-symbol=android_*",
"-Wl,--export-dynamic-symbol=NativeBridge*",
],
header_libs: [
"libnativebridge-headers",
"libnativehelper_header_only",
],
static_libs: [
"libgmock",
],
shared_libs: [
"libbase",
],
test_suites: ["device-tests"],
}
art_cc_test {
name: "libnativeloader_test",
defaults: [
"art_standalone_test_defaults",
"libnativeloader-test-defaults",
],
tidy_timeout_srcs: [
"native_loader_test.cpp",
],
srcs: [
"native_loader_api_test.c",
"native_loader_test.cpp",
],
shared_libs: [
"libnativeloader",
],
// Support multilib variants (using different suffix per sub-architecture), which is needed on
// build targets with secondary architectures, as the CTS test suite packaging logic flattens
// all test artifacts into a single `testcases` directory.
compile_multilib: "both",
multilib: {
lib32: {
suffix: "32",
},
lib64: {
suffix: "64",
},
},
// Added to CTS for API coverage of libnativeloader which is backed by the
// ART module.
test_config_template: ":art-gtests-target-standalone-cts-template",
test_suites: [
"cts",
"mts-art",
],
}
art_cc_test {
name: "libnativeloader_lazy_test",
defaults: ["libnativeloader-test-defaults"],
srcs: [
"native_loader_lazy_test.cpp",
],
static_libs: [
"libnativeloader_lazy",
],
}