blob: a732276deea38612ddaeeb909977d952b51bc6f5 [file] [log] [blame]
Orion Hodson9b16e342019-10-09 13:29:16 +01001// Shared library for target
2// ========================================================
3cc_defaults {
4 name: "libnativeloader-defaults",
Martin Stjernholm3bb009a2019-10-17 21:29:01 +01005 defaults: ["art_defaults"],
Orion Hodson9b16e342019-10-09 13:29:16 +01006 cppflags: [
7 "-fvisibility=hidden",
8 ],
9 header_libs: ["libnativeloader-headers"],
10 export_header_lib_headers: ["libnativeloader-headers"],
11}
12
13cc_library {
14 name: "libnativeloader",
15 defaults: ["libnativeloader-defaults"],
Orion Hodsonc78860b2019-10-11 11:30:01 +010016 visibility: [
Orion Hodsonc78860b2019-10-11 11:30:01 +010017 "//frameworks/base/cmds/app_process",
Martin Stjernholm3bb009a2019-10-17 21:29:01 +010018 // TODO(b/133140750): Clean this up.
Orion Hodsonc78860b2019-10-11 11:30:01 +010019 "//frameworks/base/native/webview/loader",
20 ],
Jiyong Park066dd9022019-12-19 02:11:59 +000021 apex_available: [
22 "com.android.art.release",
23 "com.android.art.debug",
24 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010025 host_supported: true,
26 srcs: [
27 "native_loader.cpp",
28 ],
Orion Hodson6dc0a432020-02-06 14:28:28 +000029 header_libs: ["libnativehelper_header_only"],
Orion Hodson9b16e342019-10-09 13:29:16 +010030 shared_libs: [
Orion Hodson9b16e342019-10-09 13:29:16 +010031 "liblog",
32 "libnativebridge",
33 "libbase",
34 ],
35 target: {
36 android: {
37 srcs: [
38 "library_namespaces.cpp",
39 "native_loader_namespace.cpp",
40 "public_libraries.cpp",
41 ],
42 shared_libs: [
43 "libdl_android",
44 ],
Justin Yun3db26d52019-12-16 14:09:39 +090045 whole_static_libs: [
46 "PlatformProperties",
47 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010048 },
49 },
Orion Hodson9b16e342019-10-09 13:29:16 +010050 stubs: {
51 symbol_file: "libnativeloader.map.txt",
52 versions: ["1"],
53 },
54}
55
56// TODO(b/124250621) eliminate the need for this library
57cc_library {
58 name: "libnativeloader_lazy",
59 defaults: ["libnativeloader-defaults"],
Orion Hodsonc78860b2019-10-11 11:30:01 +010060 visibility: [
61 "//frameworks/base/core/jni",
62 "//frameworks/native/opengl/libs",
63 "//frameworks/native/vulkan/libvulkan",
64 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010065 host_supported: false,
66 srcs: ["native_loader_lazy.cpp"],
67 required: ["libnativeloader"],
68}
69
70cc_library_headers {
71 name: "libnativeloader-headers",
Orion Hodsonc78860b2019-10-11 11:30:01 +010072 visibility: [
Martin Stjernholm3bb009a2019-10-17 21:29:01 +010073 "//art:__subpackages__",
74 // TODO(b/133140750): Clean this up.
Orion Hodsonc78860b2019-10-11 11:30:01 +010075 "//frameworks/av/media/libstagefright",
76 "//frameworks/native/libs/graphicsenv",
77 "//frameworks/native/vulkan/libvulkan",
78 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010079 host_supported: true,
80 export_include_dirs: ["include"],
81}
82
83cc_test {
84 name: "libnativeloader_test",
85 srcs: [
86 "native_loader_test.cpp",
87 "native_loader.cpp",
88 "library_namespaces.cpp",
89 "native_loader_namespace.cpp",
90 "public_libraries.cpp",
91 ],
92 cflags: ["-DANDROID"],
93 static_libs: [
94 "libbase",
95 "liblog",
Orion Hodson9b16e342019-10-09 13:29:16 +010096 "libgmock",
Justin Yun3db26d52019-12-16 14:09:39 +090097 "PlatformProperties",
Orion Hodson9b16e342019-10-09 13:29:16 +010098 ],
99 header_libs: [
100 "libnativebridge-headers",
Orion Hodson6dc0a432020-02-06 14:28:28 +0000101 "libnativehelper_header_only",
Orion Hodson9b16e342019-10-09 13:29:16 +0100102 "libnativeloader-headers",
103 ],
Orion Hodson43464992019-10-11 11:10:03 +0100104 // native_loader_test.cpp mocks libdl APIs so system_shared_libs
105 // are used to include C libraries without libdl.
Orion Hodson9b16e342019-10-09 13:29:16 +0100106 system_shared_libs: [
107 "libc",
108 "libm",
109 ],
110 test_suites: ["device-tests"],
111}