blob: 8d89cc1f4a9b7600ca3b6d40025ff81426c812e0 [file] [log] [blame]
Makoto Onuki3aefe332023-10-06 10:02:07 -07001package {
2 // See: http://go/android-license-faq
3 // A large-scale-change added 'default_applicable_licenses' to import
4 // all of the 'license_kinds' from "frameworks_base_license"
5 // to get the below license kinds:
6 // SPDX-license-identifier-Apache-2.0
7 default_applicable_licenses: ["frameworks_base_license"],
8}
9
10filegroup {
11 name: "ravenwood-annotations",
12 srcs: [
13 "annotations-src/**/*.java",
14 ],
Anton Hanssond82cbc72023-10-30 20:00:39 +000015 path: "annotations-src",
Makoto Onuki3aefe332023-10-06 10:02:07 -070016 visibility: ["//visibility:public"],
17}
18
Makoto Onukidfade842024-05-02 15:42:08 -070019filegroup {
20 name: "ravenwood-services-policies",
21 srcs: [
22 "texts/ravenwood-services-policies.txt",
23 ],
24 visibility: ["//visibility:public"],
25}
26
27filegroup {
28 name: "ravenwood-framework-policies",
29 srcs: [
30 "texts/ravenwood-framework-policies.txt",
31 ],
32 visibility: ["//visibility:public"],
33}
34
35filegroup {
36 name: "ravenwood-standard-options",
37 srcs: [
38 "texts/ravenwood-standard-options.txt",
39 ],
40 visibility: ["//visibility:public"],
41}
42
43filegroup {
44 name: "ravenwood-annotation-allowed-classes",
45 srcs: [
46 "texts/ravenwood-annotation-allowed-classes.txt",
47 ],
48 visibility: ["//visibility:public"],
49}
50
Makoto Onuki3aefe332023-10-06 10:02:07 -070051java_library {
52 name: "ravenwood-annotations-lib",
53 srcs: [":ravenwood-annotations"],
54 sdk_version: "core_current",
55 host_supported: true,
56 visibility: ["//visibility:public"],
57}
Jeff Sharkey91f414e2023-11-07 15:43:59 -070058
Makoto Onukidf9cd262024-05-16 15:44:38 -070059// This and the next module contain the same classes with different implementations.
60// "ravenwood-runtime-common-device" will be statically linked in device side tests.
61// "ravenwood-runtime-common-ravenwood" will only exist in ravenwood-runtime, which will take
62// precedence even if the test jar (accidentally) contains "ravenwood-runtime-common-device".
63// "ravenwood-runtime-common" uses it to detect if the rutime is Ravenwood or not.
64java_library {
65 name: "ravenwood-runtime-common-ravenwood",
66 host_supported: true,
67 sdk_version: "core_current",
68 srcs: [
69 "runtime-common-ravenwood-src/**/*.java",
70 ],
71 visibility: ["//frameworks/base"],
72}
73
74java_library {
75 name: "ravenwood-runtime-common-device",
76 host_supported: true,
77 sdk_version: "core_current",
78 srcs: [
79 "runtime-common-device-src/**/*.java",
80 ],
81 visibility: ["//visibility:private"],
82}
83
84java_library {
85 name: "ravenwood-runtime-common",
86 host_supported: true,
87 sdk_version: "core_current",
88 srcs: [
89 "runtime-common-src/**/*.java",
90 ],
91 libs: [
92 "ravenwood-runtime-common-ravenwood",
93 ],
94 visibility: ["//visibility:private"],
95}
96
Makoto Onuki053eac82024-02-13 10:31:18 -080097java_library_host {
98 name: "ravenwood-helper-libcore-runtime.host",
99 srcs: [
100 "runtime-helper-src/libcore-fake/**/*.java",
101 ],
Makoto Onukidf9cd262024-05-16 15:44:38 -0700102 static_libs: [
103 "ravenwood-runtime-common",
104 ],
Makoto Onuki053eac82024-02-13 10:31:18 -0800105 visibility: ["//visibility:private"],
106}
107
108java_host_for_device {
109 name: "ravenwood-helper-libcore-runtime",
110 libs: [
111 "ravenwood-helper-libcore-runtime.host",
112 ],
113 visibility: ["//visibility:private"],
114}
115
116java_library {
117 name: "ravenwood-helper-framework-runtime",
118 srcs: [
119 "runtime-helper-src/framework/**/*.java",
120 ],
Makoto Onukidf9cd262024-05-16 15:44:38 -0700121 static_libs: [
122 "ravenwood-runtime-common",
123 ],
Makoto Onuki053eac82024-02-13 10:31:18 -0800124 libs: [
125 "framework-minus-apex.ravenwood",
Makoto Onuki50276f02024-02-13 14:58:56 -0800126 "ravenwood-junit",
Makoto Onuki053eac82024-02-13 10:31:18 -0800127 ],
128 visibility: ["//visibility:private"],
129}
130
131// Combine ravenwood-helper-*-runtime and create a single library, which we include
132// in the ravenwood runtime.
133// We do it this way rather than including the individual jars in the runtime, because
134// for some reason we couldn't include a java_host_for_device module in the ravenwood runtime.
135java_library {
136 name: "ravenwood-helper-runtime",
137 defaults: ["ravenwood-internal-only-visibility-java"],
138 static_libs: [
139 "ravenwood-helper-framework-runtime",
140 "ravenwood-helper-libcore-runtime",
141 ],
142}
143
Jeff Sharkey91f414e2023-11-07 15:43:59 -0700144java_library {
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700145 name: "ravenwood-junit-impl",
146 srcs: [
147 "junit-src/**/*.java",
148 "junit-impl-src/**/*.java",
149 ],
Jeff Sharkeyc91451a2024-01-29 10:55:45 -0700150 static_libs: [
151 "androidx.test.monitor-for-device",
Makoto Onukidf9cd262024-05-16 15:44:38 -0700152 "ravenwood-runtime-common",
Jeff Sharkeyc91451a2024-01-29 10:55:45 -0700153 ],
Jeff Sharkey91f414e2023-11-07 15:43:59 -0700154 libs: [
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700155 "android.test.mock",
Jeff Sharkey5e210d72023-11-10 11:22:05 -0700156 "framework-minus-apex.ravenwood",
Jeff Sharkey8a922ec2024-02-27 12:36:36 -0700157 "ravenwood-framework",
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700158 "services.core.ravenwood",
Jeff Sharkey91f414e2023-11-07 15:43:59 -0700159 "junit",
160 ],
Makoto Onukia8bcba12023-11-22 14:00:24 -0800161 sdk_version: "core_current",
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700162 visibility: ["//frameworks/base"],
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700163 jarjar_rules: ":ravenwood-services-jarjar-rules",
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700164}
165
Jeff Sharkey7037e352024-02-27 14:22:24 -0700166// Separated out from ravenwood-junit-impl since it needs to compile
167// against `module_current`
168java_library {
169 name: "ravenwood-junit-impl-flag",
170 srcs: [
171 "junit-flag-src/**/*.java",
172 ],
Liana Kazanova0c16dd32024-06-25 20:40:04 +0000173 sdk_version: "module_current",
Jeff Sharkey7037e352024-02-27 14:22:24 -0700174 libs: [
175 "junit",
176 "flag-junit",
177 ],
178 visibility: ["//visibility:public"],
179}
180
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700181// Carefully compiles against only test_current to support tests that
182// want to verify they're unbundled. The "impl" library above is what
183// ships inside the Ravenwood environment to actually drive any API
184// access to implementation details.
Felipe Lemedfbfb232024-07-23 05:31:38 +0000185// This library needs to be statically linked to mainline tests as well,
186// which need to be able to run on multiple API levels, so we can't use
187// test APIs in this module.
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700188java_library {
189 name: "ravenwood-junit",
190 srcs: [
191 "junit-src/**/*.java",
192 "junit-stub-src/**/*.java",
Jeff Sharkey7037e352024-02-27 14:22:24 -0700193 "junit-flag-src/**/*.java",
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700194 ],
Felipe Lemedfbfb232024-07-23 05:31:38 +0000195 sdk_version: "module_current",
Makoto Onukidf9cd262024-05-16 15:44:38 -0700196 static_libs: [
197 "ravenwood-runtime-common",
198 "ravenwood-runtime-common-device",
199 ],
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700200 libs: [
201 "junit",
Jeff Sharkey7037e352024-02-27 14:22:24 -0700202 "flag-junit",
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700203 ],
Jeff Sharkey91f414e2023-11-07 15:43:59 -0700204 visibility: ["//visibility:public"],
205}
Jeff Sharkey4ee8a652023-11-14 08:45:56 -0700206
Jeff Sharkey8a922ec2024-02-27 12:36:36 -0700207// Library used to publish a handful of `android.ravenwood` APIs into
208// the Ravenwood BCP; we don't want to publish these APIs into the BCP
209// on physical devices, which is why this is a separate library
210java_library {
211 name: "ravenwood-framework",
212 srcs: [
213 "framework-src/**/*.java",
214 ],
215 libs: [
216 "framework-minus-apex.ravenwood",
217 ],
218 sdk_version: "core_current",
219 visibility: ["//visibility:public"],
220}
221
Jeff Sharkeyc91451a2024-01-29 10:55:45 -0700222java_host_for_device {
223 name: "androidx.test.monitor-for-device",
224 libs: [
225 "androidx.test.monitor-for-host",
226 ],
227}
228
229java_device_for_host {
230 name: "androidx.test.monitor-for-host",
231 libs: [
232 "androidx.test.monitor",
233 ],
234}
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700235
236filegroup {
Makoto Onukif38d5992024-05-30 10:40:50 -0700237 name: "ravenwood-framework-jarjar-rules",
238 srcs: ["texts/ravenwood-framework-jarjar-rules.txt"],
239 visibility: ["//frameworks/base"],
240}
241
242filegroup {
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700243 name: "ravenwood-services-jarjar-rules",
Makoto Onukia3fe5622024-03-27 13:08:32 -0700244 srcs: ["texts/ravenwood-services-jarjar-rules.txt"],
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700245 visibility: ["//frameworks/base"],
246}
Makoto Onuki3fb1f2b2024-03-27 13:08:32 -0700247
Makoto Onukiaedf30b2024-05-01 11:16:50 -0700248cc_library_shared {
249 name: "libravenwood_runtime",
250 host_supported: true,
251
252 cflags: [
253 "-Wall",
254 "-Werror",
255 "-Wno-unused-parameter",
256 "-Wthread-safety",
257 ],
258
259 srcs: [
Makoto Onukidf9cd262024-05-16 15:44:38 -0700260 "runtime-jni/*.cpp",
Makoto Onukiaedf30b2024-05-01 11:16:50 -0700261 ],
262
263 shared_libs: [
264 "libbase",
265 "liblog",
266 "libnativehelper",
267 "libutils",
268 "libcutils",
269 ],
270 visibility: ["//frameworks/base"],
271}
272
Makoto Onuki3fb1f2b2024-03-27 13:08:32 -0700273// For collecting the *stats.csv files in a known directory under out/host/linux-x86/testcases/.
274// The "test" just shows the available stats filenames.
275sh_test_host {
276 name: "ravenwood-stats-checker",
Makoto Onukia3fe5622024-03-27 13:08:32 -0700277 src: "scripts/ravenwood-stats-checker.sh",
Makoto Onuki3fb1f2b2024-03-27 13:08:32 -0700278 test_suites: ["general-tests"],
279 data: [
Makoto Onuki134a4152024-06-26 14:21:12 -0700280 ":framework-minus-apex.ravenwood-base{hoststubgen_framework-minus-apex_stats.csv}",
281 ":framework-minus-apex.ravenwood-base{hoststubgen_framework-minus-apex_apis.csv}",
282 ":framework-minus-apex.ravenwood-base{hoststubgen_framework-minus-apex_keep_all.txt}",
283 ":framework-minus-apex.ravenwood-base{hoststubgen_framework-minus-apex_dump.txt}",
284 ":services.core.ravenwood-base{hoststubgen_services.core_stats.csv}",
285 ":services.core.ravenwood-base{hoststubgen_services.core_apis.csv}",
286 ":services.core.ravenwood-base{hoststubgen_services.core_keep_all.txt}",
287 ":services.core.ravenwood-base{hoststubgen_services.core_dump.txt}",
Makoto Onuki3fb1f2b2024-03-27 13:08:32 -0700288 ],
289}
Makoto Onukie5e97272024-05-23 10:49:31 -0700290
291java_library {
292 name: "services.fakes.ravenwood-jarjar",
293 installable: false,
294 srcs: [":services.fakes-sources"],
295 libs: [
296 "ravenwood-framework",
297 "services.core.ravenwood",
298 ],
299 jarjar_rules: ":ravenwood-services-jarjar-rules",
300 visibility: ["//visibility:private"],
301}
302
303java_library {
304 name: "mockito-ravenwood-prebuilt",
305 installable: false,
306 static_libs: [
307 "mockito-robolectric-prebuilt",
308 ],
309}
310
311java_library {
312 name: "inline-mockito-ravenwood-prebuilt",
313 installable: false,
314 static_libs: [
315 "inline-mockito-robolectric-prebuilt",
316 ],
317}
318
319android_ravenwood_libgroup {
320 name: "ravenwood-runtime",
321 libs: [
322 "100-framework-minus-apex.ravenwood",
323 "200-kxml2-android",
324
325 "ravenwood-runtime-common-ravenwood",
326
327 "android.test.mock.ravenwood",
328 "ravenwood-helper-runtime",
329 "hoststubgen-helper-runtime.ravenwood",
330 "services.core.ravenwood-jarjar",
331 "services.fakes.ravenwood-jarjar",
332
333 // Provide runtime versions of utils linked in below
334 "junit",
335 "truth",
336 "flag-junit",
337 "ravenwood-framework",
338 "ravenwood-junit-impl",
339 "ravenwood-junit-impl-flag",
340 "mockito-ravenwood-prebuilt",
341 "inline-mockito-ravenwood-prebuilt",
342
343 // It's a stub, so it should be towards the end.
344 "z00-all-updatable-modules-system-stubs",
345 ],
346 jni_libs: [
347 "libandroid_runtime",
348 "libravenwood_runtime",
349 ],
350}
351
352android_ravenwood_libgroup {
353 name: "ravenwood-utils",
354 libs: [
355 "junit",
356 "truth",
357 "flag-junit",
358 "ravenwood-framework",
359 "ravenwood-junit",
360 "mockito-ravenwood-prebuilt",
361 "inline-mockito-ravenwood-prebuilt",
362 ],
363}