blob: 4024d48c378e835c7855a041554656225978f880 [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 Hodson00cb81d2020-04-03 06:47:07 +010029 header_libs: [
30 "libnativehelper_header_only",
31 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010032 shared_libs: [
Orion Hodson9b16e342019-10-09 13:29:16 +010033 "liblog",
34 "libnativebridge",
35 "libbase",
36 ],
37 target: {
38 android: {
39 srcs: [
40 "library_namespaces.cpp",
41 "native_loader_namespace.cpp",
42 "public_libraries.cpp",
43 ],
44 shared_libs: [
45 "libdl_android",
46 ],
Justin Yun3db26d52019-12-16 14:09:39 +090047 whole_static_libs: [
48 "PlatformProperties",
49 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010050 },
51 },
Orion Hodson9b16e342019-10-09 13:29:16 +010052 stubs: {
53 symbol_file: "libnativeloader.map.txt",
54 versions: ["1"],
55 },
56}
57
58// TODO(b/124250621) eliminate the need for this library
59cc_library {
60 name: "libnativeloader_lazy",
61 defaults: ["libnativeloader-defaults"],
Orion Hodsonc78860b2019-10-11 11:30:01 +010062 visibility: [
63 "//frameworks/base/core/jni",
64 "//frameworks/native/opengl/libs",
65 "//frameworks/native/vulkan/libvulkan",
66 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010067 host_supported: false,
68 srcs: ["native_loader_lazy.cpp"],
69 required: ["libnativeloader"],
70}
71
72cc_library_headers {
73 name: "libnativeloader-headers",
Orion Hodsonc78860b2019-10-11 11:30:01 +010074 visibility: [
Martin Stjernholm3bb009a2019-10-17 21:29:01 +010075 "//art:__subpackages__",
76 // TODO(b/133140750): Clean this up.
Orion Hodsonc78860b2019-10-11 11:30:01 +010077 "//frameworks/av/media/libstagefright",
78 "//frameworks/native/libs/graphicsenv",
79 "//frameworks/native/vulkan/libvulkan",
80 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010081 host_supported: true,
82 export_include_dirs: ["include"],
Orion Hodson00cb81d2020-04-03 06:47:07 +010083 header_libs: ["jni_headers"],
84 export_header_lib_headers: ["jni_headers"],
Orion Hodson9b16e342019-10-09 13:29:16 +010085}
86
87cc_test {
88 name: "libnativeloader_test",
89 srcs: [
90 "native_loader_test.cpp",
91 "native_loader.cpp",
92 "library_namespaces.cpp",
93 "native_loader_namespace.cpp",
94 "public_libraries.cpp",
95 ],
96 cflags: ["-DANDROID"],
97 static_libs: [
98 "libbase",
99 "liblog",
Orion Hodson9b16e342019-10-09 13:29:16 +0100100 "libgmock",
Justin Yun3db26d52019-12-16 14:09:39 +0900101 "PlatformProperties",
Orion Hodson9b16e342019-10-09 13:29:16 +0100102 ],
103 header_libs: [
104 "libnativebridge-headers",
Orion Hodson6dc0a432020-02-06 14:28:28 +0000105 "libnativehelper_header_only",
Orion Hodson9b16e342019-10-09 13:29:16 +0100106 "libnativeloader-headers",
107 ],
Orion Hodson43464992019-10-11 11:10:03 +0100108 // native_loader_test.cpp mocks libdl APIs so system_shared_libs
109 // are used to include C libraries without libdl.
Orion Hodson9b16e342019-10-09 13:29:16 +0100110 system_shared_libs: [
111 "libc",
112 "libm",
113 ],
114 test_suites: ["device-tests"],
115}