blob: 993e5d59e6cf787fc47579fdd465b170adc12ed1 [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
David Srbecky1cf46a32020-06-22 15:39:00 +010013art_cc_library {
Orion Hodson9b16e342019-10-09 13:29:16 +010014 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: [
Martin Stjernholm3e9abfc2020-10-09 22:17:51 +010022 "com.android.art",
Jiyong Park066dd9022019-12-19 02:11:59 +000023 "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: {
David Srbeckyc4b50b32020-07-01 15:10:23 +010038 // Library search path needed for running host tests remotely (from testcases directory).
39 linux_glibc_x86: {
40 ldflags: [
41 "-Wl,-rpath,$ORIGIN/../art_common/out/host/linux-x86/lib",
42 "-Wl,--enable-new-dtags",
43 ],
44 },
45 linux_glibc_x86_64: {
46 ldflags: [
47 "-Wl,-rpath,$ORIGIN/../art_common/out/host/linux-x86/lib64",
48 "-Wl,--enable-new-dtags",
49 ],
50 },
Orion Hodson9b16e342019-10-09 13:29:16 +010051 android: {
52 srcs: [
53 "library_namespaces.cpp",
54 "native_loader_namespace.cpp",
55 "public_libraries.cpp",
56 ],
57 shared_libs: [
58 "libdl_android",
59 ],
Martin Stjernholm2b84cf82021-01-28 22:54:14 +000060 static_libs: [
Justin Yun3db26d52019-12-16 14:09:39 +090061 "PlatformProperties",
62 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010063 },
64 },
Orion Hodson9b16e342019-10-09 13:29:16 +010065 stubs: {
66 symbol_file: "libnativeloader.map.txt",
67 versions: ["1"],
68 },
69}
70
71// TODO(b/124250621) eliminate the need for this library
72cc_library {
73 name: "libnativeloader_lazy",
74 defaults: ["libnativeloader-defaults"],
Orion Hodsonc78860b2019-10-11 11:30:01 +010075 visibility: [
76 "//frameworks/base/core/jni",
77 "//frameworks/native/opengl/libs",
78 "//frameworks/native/vulkan/libvulkan",
79 ],
Martin Stjernholmb5ed3302020-10-30 02:27:23 +000080 apex_available: [
81 "//apex_available:platform",
Martin Stjernholm694f0122020-10-30 02:23:24 +000082 "com.android.media",
83 "com.android.media.swcodec",
Martin Stjernholmb5ed3302020-10-30 02:27:23 +000084 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010085 host_supported: false,
86 srcs: ["native_loader_lazy.cpp"],
Martin Stjernholmb5ed3302020-10-30 02:27:23 +000087 runtime_libs: ["libnativeloader"],
Mitch Phillips5472d6f2020-07-01 09:43:16 -070088 shared_libs: ["liblog"],
Orion Hodson9b16e342019-10-09 13:29:16 +010089}
90
91cc_library_headers {
92 name: "libnativeloader-headers",
Jiyong Park71f661c2020-04-28 18:20:43 +090093 apex_available: [
94 "//apex_available:platform",
Martin Stjernholm3e9abfc2020-10-09 22:17:51 +010095 "com.android.art",
Jiyong Park71f661c2020-04-28 18:20:43 +090096 "com.android.art.debug",
Martin Stjernholm694f0122020-10-30 02:23:24 +000097 "com.android.media",
Jiyong Park71f661c2020-04-28 18:20:43 +090098 ],
Orion Hodsonc78860b2019-10-11 11:30:01 +010099 visibility: [
Martin Stjernholm3bb009a2019-10-17 21:29:01 +0100100 "//art:__subpackages__",
101 // TODO(b/133140750): Clean this up.
Orion Hodsonc78860b2019-10-11 11:30:01 +0100102 "//frameworks/av/media/libstagefright",
103 "//frameworks/native/libs/graphicsenv",
104 "//frameworks/native/vulkan/libvulkan",
105 ],
Orion Hodson9b16e342019-10-09 13:29:16 +0100106 host_supported: true,
107 export_include_dirs: ["include"],
Orion Hodson00cb81d2020-04-03 06:47:07 +0100108 header_libs: ["jni_headers"],
109 export_header_lib_headers: ["jni_headers"],
Orion Hodson9b16e342019-10-09 13:29:16 +0100110}
111
Martin Stjernholmb3092402020-09-04 00:49:44 +0100112art_cc_test {
Orion Hodson9b16e342019-10-09 13:29:16 +0100113 name: "libnativeloader_test",
114 srcs: [
115 "native_loader_test.cpp",
116 "native_loader.cpp",
117 "library_namespaces.cpp",
118 "native_loader_namespace.cpp",
119 "public_libraries.cpp",
120 ],
121 cflags: ["-DANDROID"],
122 static_libs: [
123 "libbase",
124 "liblog",
Orion Hodson9b16e342019-10-09 13:29:16 +0100125 "libgmock",
Justin Yun3db26d52019-12-16 14:09:39 +0900126 "PlatformProperties",
Orion Hodson9b16e342019-10-09 13:29:16 +0100127 ],
128 header_libs: [
129 "libnativebridge-headers",
Orion Hodson6dc0a432020-02-06 14:28:28 +0000130 "libnativehelper_header_only",
Orion Hodson9b16e342019-10-09 13:29:16 +0100131 "libnativeloader-headers",
132 ],
Orion Hodson43464992019-10-11 11:10:03 +0100133 // native_loader_test.cpp mocks libdl APIs so system_shared_libs
134 // are used to include C libraries without libdl.
Orion Hodson9b16e342019-10-09 13:29:16 +0100135 system_shared_libs: [
136 "libc",
137 "libm",
138 ],
139 test_suites: ["device-tests"],
140}