blob: f6dab2d72382c088ac33937cfa7bf1fdb4754f48 [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 },
50 required: [
51 "llndk.libraries.txt",
52 "vndksp.libraries.txt",
53 ],
54 stubs: {
55 symbol_file: "libnativeloader.map.txt",
56 versions: ["1"],
57 },
58}
59
60// TODO(b/124250621) eliminate the need for this library
61cc_library {
62 name: "libnativeloader_lazy",
63 defaults: ["libnativeloader-defaults"],
Orion Hodsonc78860b2019-10-11 11:30:01 +010064 visibility: [
65 "//frameworks/base/core/jni",
66 "//frameworks/native/opengl/libs",
67 "//frameworks/native/vulkan/libvulkan",
68 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010069 host_supported: false,
70 srcs: ["native_loader_lazy.cpp"],
71 required: ["libnativeloader"],
72}
73
74cc_library_headers {
75 name: "libnativeloader-headers",
Orion Hodsonc78860b2019-10-11 11:30:01 +010076 visibility: [
Martin Stjernholm3bb009a2019-10-17 21:29:01 +010077 "//art:__subpackages__",
78 // TODO(b/133140750): Clean this up.
Orion Hodsonc78860b2019-10-11 11:30:01 +010079 "//frameworks/av/media/libstagefright",
80 "//frameworks/native/libs/graphicsenv",
81 "//frameworks/native/vulkan/libvulkan",
82 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010083 host_supported: true,
84 export_include_dirs: ["include"],
85}
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}