blob: 70f89ffe28f8c47ef750754c11f5768b4f3303ea [file] [log] [blame]
// 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"],
cppflags: [
"-fvisibility=hidden",
],
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",
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"],
}
art_cc_test {
name: "libnativeloader_test",
srcs: [
"native_loader_test.cpp",
"native_loader.cpp",
"library_namespaces.cpp",
"native_loader_namespace.cpp",
"public_libraries.cpp",
],
cflags: ["-DANDROID"],
static_libs: [
"libbase",
"liblog",
"libgmock",
"PlatformProperties",
],
header_libs: [
"libnativebridge-headers",
"libnativehelper_header_only",
"libnativeloader-headers",
],
// native_loader_test.cpp mocks libdl APIs so system_shared_libs
// are used to include C libraries without libdl.
system_shared_libs: [
"libc",
"libm",
],
test_suites: ["device-tests"],
}