blob: 3f13506e33bde564269d5190b14a9e63474dbf8f [file] [log] [blame]
Orion Hodson9b16e342019-10-09 13:29:16 +01001// Shared library for target
2// ========================================================
Bob Badour9150de62021-02-26 03:22:24 -08003package {
4 // See: http://go/android-license-faq
5 // A large-scale-change added 'default_applicable_licenses' to import
6 // all of the 'license_kinds' from "art_license"
7 // to get the below license kinds:
8 // SPDX-license-identifier-Apache-2.0
9 default_applicable_licenses: ["art_license"],
10}
11
Orion Hodson9b16e342019-10-09 13:29:16 +010012cc_defaults {
13 name: "libnativeloader-defaults",
Martin Stjernholm3bb009a2019-10-17 21:29:01 +010014 defaults: ["art_defaults"],
Orion Hodson9b16e342019-10-09 13:29:16 +010015 header_libs: ["libnativeloader-headers"],
16 export_header_lib_headers: ["libnativeloader-headers"],
17}
18
David Srbecky1cf46a32020-06-22 15:39:00 +010019art_cc_library {
Orion Hodson9b16e342019-10-09 13:29:16 +010020 name: "libnativeloader",
21 defaults: ["libnativeloader-defaults"],
Orion Hodsonc78860b2019-10-11 11:30:01 +010022 visibility: [
Orion Hodsonc78860b2019-10-11 11:30:01 +010023 "//frameworks/base/cmds/app_process",
Martin Stjernholm3bb009a2019-10-17 21:29:01 +010024 // TODO(b/133140750): Clean this up.
Orion Hodsonc78860b2019-10-11 11:30:01 +010025 "//frameworks/base/native/webview/loader",
26 ],
Jiyong Park066dd9022019-12-19 02:11:59 +000027 apex_available: [
Martin Stjernholm3e9abfc2020-10-09 22:17:51 +010028 "com.android.art",
Jiyong Park066dd9022019-12-19 02:11:59 +000029 "com.android.art.debug",
30 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010031 host_supported: true,
32 srcs: [
33 "native_loader.cpp",
34 ],
Orion Hodson00cb81d2020-04-03 06:47:07 +010035 header_libs: [
36 "libnativehelper_header_only",
37 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010038 shared_libs: [
Orion Hodson9b16e342019-10-09 13:29:16 +010039 "liblog",
40 "libnativebridge",
41 "libbase",
42 ],
43 target: {
David Srbeckyc4b50b32020-07-01 15:10:23 +010044 // Library search path needed for running host tests remotely (from testcases directory).
45 linux_glibc_x86: {
46 ldflags: [
47 "-Wl,-rpath,$ORIGIN/../art_common/out/host/linux-x86/lib",
48 "-Wl,--enable-new-dtags",
49 ],
50 },
51 linux_glibc_x86_64: {
52 ldflags: [
53 "-Wl,-rpath,$ORIGIN/../art_common/out/host/linux-x86/lib64",
54 "-Wl,--enable-new-dtags",
55 ],
56 },
Orion Hodson9b16e342019-10-09 13:29:16 +010057 android: {
58 srcs: [
59 "library_namespaces.cpp",
60 "native_loader_namespace.cpp",
61 "public_libraries.cpp",
62 ],
63 shared_libs: [
64 "libdl_android",
65 ],
Martin Stjernholm2b84cf82021-01-28 22:54:14 +000066 static_libs: [
Justin Yun3db26d52019-12-16 14:09:39 +090067 "PlatformProperties",
68 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010069 },
70 },
Orion Hodson9b16e342019-10-09 13:29:16 +010071 stubs: {
72 symbol_file: "libnativeloader.map.txt",
73 versions: ["1"],
74 },
75}
76
77// TODO(b/124250621) eliminate the need for this library
78cc_library {
79 name: "libnativeloader_lazy",
80 defaults: ["libnativeloader-defaults"],
Orion Hodsonc78860b2019-10-11 11:30:01 +010081 visibility: [
82 "//frameworks/base/core/jni",
83 "//frameworks/native/opengl/libs",
84 "//frameworks/native/vulkan/libvulkan",
85 ],
Martin Stjernholmb5ed3302020-10-30 02:27:23 +000086 apex_available: [
87 "//apex_available:platform",
Martin Stjernholm694f0122020-10-30 02:23:24 +000088 "com.android.media",
89 "com.android.media.swcodec",
Martin Stjernholmb5ed3302020-10-30 02:27:23 +000090 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010091 host_supported: false,
92 srcs: ["native_loader_lazy.cpp"],
Martin Stjernholmb5ed3302020-10-30 02:27:23 +000093 runtime_libs: ["libnativeloader"],
Mitch Phillips5472d6f2020-07-01 09:43:16 -070094 shared_libs: ["liblog"],
Orion Hodson9b16e342019-10-09 13:29:16 +010095}
96
97cc_library_headers {
98 name: "libnativeloader-headers",
Jiyong Park71f661c2020-04-28 18:20:43 +090099 apex_available: [
100 "//apex_available:platform",
Martin Stjernholm3e9abfc2020-10-09 22:17:51 +0100101 "com.android.art",
Jiyong Park71f661c2020-04-28 18:20:43 +0900102 "com.android.art.debug",
Martin Stjernholm694f0122020-10-30 02:23:24 +0000103 "com.android.media",
Jiyong Park71f661c2020-04-28 18:20:43 +0900104 ],
Nicolas Geoffrayec388c02021-03-03 22:09:06 +0000105 min_sdk_version: "S",
Orion Hodsonc78860b2019-10-11 11:30:01 +0100106 visibility: [
Martin Stjernholm3bb009a2019-10-17 21:29:01 +0100107 "//art:__subpackages__",
108 // TODO(b/133140750): Clean this up.
Orion Hodsonc78860b2019-10-11 11:30:01 +0100109 "//frameworks/av/media/libstagefright",
110 "//frameworks/native/libs/graphicsenv",
111 "//frameworks/native/vulkan/libvulkan",
112 ],
Orion Hodson9b16e342019-10-09 13:29:16 +0100113 host_supported: true,
114 export_include_dirs: ["include"],
Orion Hodson00cb81d2020-04-03 06:47:07 +0100115 header_libs: ["jni_headers"],
116 export_header_lib_headers: ["jni_headers"],
Orion Hodson9b16e342019-10-09 13:29:16 +0100117}
118
Martin Stjernholm8d817952021-03-30 22:35:24 +0100119cc_defaults {
120 name: "libnativeloader-test-defaults",
Martin Stjernholm6eb17832021-05-10 17:44:05 +0100121 defaults: [
122 "art_module_source_build_defaults",
123 "art_test_defaults",
124 ],
Martin Stjernholm26659432021-04-16 19:55:03 +0100125 host_supported: false,
126
Orion Hodson9b16e342019-10-09 13:29:16 +0100127 cflags: ["-DANDROID"],
Martin Stjernholm26659432021-04-16 19:55:03 +0100128
Martin Stjernholm8d817952021-03-30 22:35:24 +0100129 // The tests mock libdl_android and libnativebridge symbols, so export them
Martin Stjernholm26659432021-04-16 19:55:03 +0100130 // to override the ones loaded from their libs.
131 ldflags: [
132 "-Wl,--export-dynamic-symbol=android_*",
133 "-Wl,--export-dynamic-symbol=NativeBridge*",
Orion Hodson9b16e342019-10-09 13:29:16 +0100134 ],
Martin Stjernholm26659432021-04-16 19:55:03 +0100135
Orion Hodson9b16e342019-10-09 13:29:16 +0100136 header_libs: [
137 "libnativebridge-headers",
Orion Hodson6dc0a432020-02-06 14:28:28 +0000138 "libnativehelper_header_only",
Orion Hodson9b16e342019-10-09 13:29:16 +0100139 ],
Martin Stjernholm26659432021-04-16 19:55:03 +0100140 static_libs: [
141 "libgmock",
Orion Hodson9b16e342019-10-09 13:29:16 +0100142 ],
Martin Stjernholm26659432021-04-16 19:55:03 +0100143 shared_libs: [
144 "libbase",
Martin Stjernholm26659432021-04-16 19:55:03 +0100145 ],
146
Orion Hodson9b16e342019-10-09 13:29:16 +0100147 test_suites: ["device-tests"],
148}
Martin Stjernholm8d817952021-03-30 22:35:24 +0100149
150art_cc_test {
151 name: "libnativeloader_test",
152 defaults: ["libnativeloader-test-defaults"],
153 srcs: [
154 "native_loader_api_test.c",
155 "native_loader_test.cpp",
156 ],
157 shared_libs: [
158 "libnativeloader",
159 ],
160}
161
162art_cc_test {
163 name: "libnativeloader_lazy_test",
164 defaults: ["libnativeloader-test-defaults"],
165 srcs: [
166 "native_loader_lazy_test.cpp",
167 ],
168 static_libs: [
169 "libnativeloader_lazy",
170 ],
171}