1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
// Shared library for target
// ========================================================
cc_defaults {
name: "libnativeloader-defaults",
defaults: ["art_defaults"],
cppflags: [
"-fvisibility=hidden",
],
header_libs: ["libnativeloader-headers"],
export_header_lib_headers: ["libnativeloader-headers"],
}
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.release",
"com.android.art.debug",
],
host_supported: true,
srcs: [
"native_loader.cpp",
],
header_libs: [
"libnativehelper_header_only",
],
shared_libs: [
"liblog",
"libnativebridge",
"libbase",
],
target: {
android: {
srcs: [
"library_namespaces.cpp",
"native_loader_namespace.cpp",
"public_libraries.cpp",
],
shared_libs: [
"libdl_android",
],
whole_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",
],
host_supported: false,
srcs: ["native_loader_lazy.cpp"],
required: ["libnativeloader"],
}
cc_library_headers {
name: "libnativeloader-headers",
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_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"],
}
|