blob: 50d243095c8a116ac8af2b7b3e1160052533b12c [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"],
default_team: "trendy_team_art_mainline",
}
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-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",
"test_broken_com.android.art",
],
host_supported: true,
srcs: [
"native_loader.cpp",
],
header_libs: [
"art_libartbase_headers",
"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: [
"libPlatformProperties",
"libmodules-utils-build",
],
},
},
stubs: {
symbol_file: "libnativeloader.map.txt",
versions: ["1"],
},
}
// Wrapper that loads nativeloader.so lazily, to be used to deal with layer
// inversion in places like in early boot where libnativeloader and/or
// libnativebridge aren't available.
// 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"],
}
art_cc_test {
name: "libnativeloader_test",
defaults: [
"art_module_source_build_defaults",
// Cannot use art_standalone_gtest_defaults because it makes us link
// libnativebridge statically through libart-gtest, but we need to mock
// its symbols here.
"art_standalone_test_defaults",
],
host_supported: false,
// Ordinarily, symbols are only exported if they are referenced by some
// shared object dependency. Instead, export everything using
// --export-dynamic, then restrict the visibility using the version script.
ldflags: ["-Wl,--export-dynamic"],
version_script: "libnativeloader_test.map",
header_libs: [
"libnativebridge-headers",
"libnativehelper_header_only",
],
shared_libs: [
"liblog", // libbase dependency
"libnativeloader",
],
static_libs: [
"libbase",
"libgmock",
],
tidy_timeout_srcs: [
"native_loader_test.cpp",
],
srcs: [
"library_namespaces_test.cpp",
"native_loader_api_test.c",
"native_loader_test.cpp",
],
test_for: [
"com.android.art",
"com.android.art.debug",
],
test_suites: [
"general-tests",
"mts-art",
],
}
cc_defaults {
name: "libnativeloader_api_test_defaults",
defaults: ["art_standalone_test_defaults"],
srcs: ["native_loader_api_test.cpp"],
header_libs: [
"libnativebridge-headers",
"libnativehelper_header_only",
],
static_libs: [
"libbase",
"libgmock",
],
}
art_cc_test {
name: "art_libnativeloader_cts_test",
defaults: ["libnativeloader_api_test_defaults"],
shared_libs: [
"libnativeloader",
],
test_config_template: ":art-gtests-target-standalone-cts-template",
test_suites: [
"cts",
"mcts-art",
],
}
art_cc_test {
name: "libnativeloader_lazy_test",
defaults: ["libnativeloader_api_test_defaults"],
static_libs: [
"libnativeloader_lazy",
],
test_suites: [
"general-tests",
"mts-art",
],
}