blob: 3c65f378f33d7729b96085c123df71aff6bfa2e1 [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 ],
Makoto Onukie49a7722024-07-19 16:45:02 -070071 visibility: [
72 // Some tests need to access the utilities.
73 ":__subpackages__",
74 ],
Makoto Onukidf9cd262024-05-16 15:44:38 -070075}
76
77java_library {
78 name: "ravenwood-runtime-common-device",
79 host_supported: true,
80 sdk_version: "core_current",
81 srcs: [
82 "runtime-common-device-src/**/*.java",
83 ],
84 visibility: ["//visibility:private"],
85}
86
87java_library {
88 name: "ravenwood-runtime-common",
89 host_supported: true,
90 sdk_version: "core_current",
91 srcs: [
92 "runtime-common-src/**/*.java",
93 ],
94 libs: [
95 "ravenwood-runtime-common-ravenwood",
96 ],
Makoto Onukid6632902024-09-05 12:04:05 -070097 static_libs: [
98 "framework-annotations-lib", // should it be "libs" instead?
99 ],
Makoto Onukidf9cd262024-05-16 15:44:38 -0700100 visibility: ["//visibility:private"],
101}
102
Makoto Onuki053eac82024-02-13 10:31:18 -0800103java_library_host {
104 name: "ravenwood-helper-libcore-runtime.host",
105 srcs: [
106 "runtime-helper-src/libcore-fake/**/*.java",
107 ],
Makoto Onukidf9cd262024-05-16 15:44:38 -0700108 static_libs: [
109 "ravenwood-runtime-common",
110 ],
Makoto Onuki053eac82024-02-13 10:31:18 -0800111 visibility: ["//visibility:private"],
112}
113
114java_host_for_device {
115 name: "ravenwood-helper-libcore-runtime",
116 libs: [
117 "ravenwood-helper-libcore-runtime.host",
118 ],
119 visibility: ["//visibility:private"],
120}
121
122java_library {
123 name: "ravenwood-helper-framework-runtime",
124 srcs: [
125 "runtime-helper-src/framework/**/*.java",
126 ],
Makoto Onukidf9cd262024-05-16 15:44:38 -0700127 static_libs: [
128 "ravenwood-runtime-common",
129 ],
Makoto Onuki053eac82024-02-13 10:31:18 -0800130 libs: [
131 "framework-minus-apex.ravenwood",
Makoto Onukie5136a62024-09-05 09:27:57 -0700132 "ravenwood-helper-libcore-runtime",
Makoto Onuki053eac82024-02-13 10:31:18 -0800133 ],
Makoto Onukic317d4a2024-09-10 11:20:40 -0700134 sdk_version: "core_current",
Makoto Onuki053eac82024-02-13 10:31:18 -0800135 visibility: ["//visibility:private"],
136}
137
138// Combine ravenwood-helper-*-runtime and create a single library, which we include
139// in the ravenwood runtime.
140// We do it this way rather than including the individual jars in the runtime, because
141// for some reason we couldn't include a java_host_for_device module in the ravenwood runtime.
142java_library {
143 name: "ravenwood-helper-runtime",
144 defaults: ["ravenwood-internal-only-visibility-java"],
145 static_libs: [
146 "ravenwood-helper-framework-runtime",
147 "ravenwood-helper-libcore-runtime",
148 ],
149}
150
Jeff Sharkey91f414e2023-11-07 15:43:59 -0700151java_library {
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700152 name: "ravenwood-junit-impl",
153 srcs: [
154 "junit-src/**/*.java",
155 "junit-impl-src/**/*.java",
156 ],
Jeff Sharkeyc91451a2024-01-29 10:55:45 -0700157 static_libs: [
158 "androidx.test.monitor-for-device",
Makoto Onukidf9cd262024-05-16 15:44:38 -0700159 "ravenwood-runtime-common",
Jeff Sharkeyc91451a2024-01-29 10:55:45 -0700160 ],
Jeff Sharkey91f414e2023-11-07 15:43:59 -0700161 libs: [
Jihoon Kange07d73c2024-08-30 00:29:12 +0000162 "android.test.mock.impl",
Jeff Sharkey5e210d72023-11-10 11:22:05 -0700163 "framework-minus-apex.ravenwood",
Jeff Sharkey8a922ec2024-02-27 12:36:36 -0700164 "ravenwood-framework",
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700165 "services.core.ravenwood",
Jeff Sharkey91f414e2023-11-07 15:43:59 -0700166 "junit",
Makoto Onuki1d417242024-08-27 12:15:34 -0700167 "framework-annotations-lib",
Makoto Onukic317d4a2024-09-10 11:20:40 -0700168 "ravenwood-helper-framework-runtime",
169 "ravenwood-helper-libcore-runtime",
Jeff Sharkey91f414e2023-11-07 15:43:59 -0700170 ],
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700171 visibility: ["//frameworks/base"],
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700172 jarjar_rules: ":ravenwood-services-jarjar-rules",
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700173}
174
Makoto Onukiefbec062024-08-16 16:59:46 -0700175java_device_for_host {
176 name: "ravenwood-junit-impl-for-ravenizer",
177 libs: [
178 "ravenwood-junit-impl",
179 ],
180 visibility: [":__subpackages__"],
181}
182
Jeff Sharkey7037e352024-02-27 14:22:24 -0700183// Separated out from ravenwood-junit-impl since it needs to compile
184// against `module_current`
185java_library {
186 name: "ravenwood-junit-impl-flag",
187 srcs: [
188 "junit-flag-src/**/*.java",
189 ],
Liana Kazanova0c16dd32024-06-25 20:40:04 +0000190 sdk_version: "module_current",
Jeff Sharkey7037e352024-02-27 14:22:24 -0700191 libs: [
192 "junit",
193 "flag-junit",
194 ],
195 visibility: ["//visibility:public"],
196}
197
Makoto Onuki833c1ae2024-08-01 12:38:50 -0700198// Carefully compiles against only module_current to support tests that
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700199// want to verify they're unbundled. The "impl" library above is what
200// ships inside the Ravenwood environment to actually drive any API
201// access to implementation details.
Makoto Onuki833c1ae2024-08-01 12:38:50 -0700202// We can't use test_current here because this library needs to be statically
203// linked to mainline tests as well, which can't use test APIs because they
204// need to be able to run on multiple API levels.
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700205java_library {
206 name: "ravenwood-junit",
207 srcs: [
208 "junit-src/**/*.java",
209 "junit-stub-src/**/*.java",
Jeff Sharkey7037e352024-02-27 14:22:24 -0700210 "junit-flag-src/**/*.java",
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700211 ],
Felipe Lemedfbfb232024-07-23 05:31:38 +0000212 sdk_version: "module_current",
Makoto Onukidf9cd262024-05-16 15:44:38 -0700213 static_libs: [
214 "ravenwood-runtime-common",
215 "ravenwood-runtime-common-device",
216 ],
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700217 libs: [
218 "junit",
Jeff Sharkey7037e352024-02-27 14:22:24 -0700219 "flag-junit",
Makoto Onuki8317f692024-08-19 11:12:20 -0700220 "framework-annotations-lib",
Jeff Sharkey41cfbb32023-11-16 09:26:28 -0700221 ],
Jeff Sharkey91f414e2023-11-07 15:43:59 -0700222 visibility: ["//visibility:public"],
223}
Jeff Sharkey4ee8a652023-11-14 08:45:56 -0700224
Jeff Sharkey8a922ec2024-02-27 12:36:36 -0700225// Library used to publish a handful of `android.ravenwood` APIs into
226// the Ravenwood BCP; we don't want to publish these APIs into the BCP
227// on physical devices, which is why this is a separate library
228java_library {
229 name: "ravenwood-framework",
230 srcs: [
231 "framework-src/**/*.java",
232 ],
233 libs: [
234 "framework-minus-apex.ravenwood",
235 ],
236 sdk_version: "core_current",
237 visibility: ["//visibility:public"],
238}
239
Jeff Sharkeyc91451a2024-01-29 10:55:45 -0700240java_host_for_device {
241 name: "androidx.test.monitor-for-device",
242 libs: [
243 "androidx.test.monitor-for-host",
244 ],
245}
246
247java_device_for_host {
248 name: "androidx.test.monitor-for-host",
249 libs: [
250 "androidx.test.monitor",
251 ],
252}
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700253
254filegroup {
Makoto Onukif38d5992024-05-30 10:40:50 -0700255 name: "ravenwood-framework-jarjar-rules",
256 srcs: ["texts/ravenwood-framework-jarjar-rules.txt"],
257 visibility: ["//frameworks/base"],
258}
259
260filegroup {
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700261 name: "ravenwood-services-jarjar-rules",
Makoto Onukia3fe5622024-03-27 13:08:32 -0700262 srcs: ["texts/ravenwood-services-jarjar-rules.txt"],
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700263 visibility: ["//frameworks/base"],
264}
Makoto Onuki3fb1f2b2024-03-27 13:08:32 -0700265
Makoto Onukiaedf30b2024-05-01 11:16:50 -0700266cc_library_shared {
267 name: "libravenwood_runtime",
268 host_supported: true,
269
270 cflags: [
271 "-Wall",
272 "-Werror",
273 "-Wno-unused-parameter",
274 "-Wthread-safety",
275 ],
276
277 srcs: [
Makoto Onukidf9cd262024-05-16 15:44:38 -0700278 "runtime-jni/*.cpp",
Makoto Onukiaedf30b2024-05-01 11:16:50 -0700279 ],
280
281 shared_libs: [
282 "libbase",
283 "liblog",
284 "libnativehelper",
285 "libutils",
286 "libcutils",
287 ],
288 visibility: ["//frameworks/base"],
289}
290
Makoto Onuki3fb1f2b2024-03-27 13:08:32 -0700291// For collecting the *stats.csv files in a known directory under out/host/linux-x86/testcases/.
292// The "test" just shows the available stats filenames.
293sh_test_host {
294 name: "ravenwood-stats-checker",
Makoto Onukia3fe5622024-03-27 13:08:32 -0700295 src: "scripts/ravenwood-stats-checker.sh",
Makoto Onuki3fb1f2b2024-03-27 13:08:32 -0700296 test_suites: ["general-tests"],
297 data: [
Makoto Onuki77d7eec2024-08-07 09:48:42 -0700298 ":framework-minus-apex.ravenwood-base_all{hoststubgen_framework-minus-apex_stats.csv}",
299 ":framework-minus-apex.ravenwood-base_all{hoststubgen_framework-minus-apex_apis.csv}",
300 ":framework-minus-apex.ravenwood-base_all{hoststubgen_framework-minus-apex_keep_all.txt}",
301 ":framework-minus-apex.ravenwood-base_all{hoststubgen_framework-minus-apex_dump.txt}",
Makoto Onuki134a4152024-06-26 14:21:12 -0700302 ":services.core.ravenwood-base{hoststubgen_services.core_stats.csv}",
303 ":services.core.ravenwood-base{hoststubgen_services.core_apis.csv}",
304 ":services.core.ravenwood-base{hoststubgen_services.core_keep_all.txt}",
305 ":services.core.ravenwood-base{hoststubgen_services.core_dump.txt}",
Makoto Onuki3fb1f2b2024-03-27 13:08:32 -0700306 ],
307}
Makoto Onukie5e97272024-05-23 10:49:31 -0700308
309java_library {
310 name: "services.fakes.ravenwood-jarjar",
311 installable: false,
312 srcs: [":services.fakes-sources"],
313 libs: [
314 "ravenwood-framework",
315 "services.core.ravenwood",
316 ],
317 jarjar_rules: ":ravenwood-services-jarjar-rules",
318 visibility: ["//visibility:private"],
319}
320
321java_library {
322 name: "mockito-ravenwood-prebuilt",
323 installable: false,
324 static_libs: [
325 "mockito-robolectric-prebuilt",
326 ],
327}
328
329java_library {
330 name: "inline-mockito-ravenwood-prebuilt",
331 installable: false,
332 static_libs: [
333 "inline-mockito-robolectric-prebuilt",
334 ],
335}
336
337android_ravenwood_libgroup {
338 name: "ravenwood-runtime",
Makoto Onukie49a7722024-07-19 16:45:02 -0700339 data: [
340 "framework-res",
John Wue1c97fa2024-08-24 08:40:02 +0000341 "ravenwood-empty-res",
Makoto Onukie49a7722024-07-19 16:45:02 -0700342 ],
Makoto Onukie5e97272024-05-23 10:49:31 -0700343 libs: [
344 "100-framework-minus-apex.ravenwood",
345 "200-kxml2-android",
346
347 "ravenwood-runtime-common-ravenwood",
348
349 "android.test.mock.ravenwood",
350 "ravenwood-helper-runtime",
351 "hoststubgen-helper-runtime.ravenwood",
352 "services.core.ravenwood-jarjar",
353 "services.fakes.ravenwood-jarjar",
354
Makoto Onuki953445b2024-07-19 11:21:29 -0700355 // ICU
356 "core-icu4j-for-host.ravenwood",
357 "icu4j-icudata-jarjar",
358 "icu4j-icutzdata-jarjar",
359
Makoto Onukie5e97272024-05-23 10:49:31 -0700360 // Provide runtime versions of utils linked in below
361 "junit",
362 "truth",
363 "flag-junit",
364 "ravenwood-framework",
365 "ravenwood-junit-impl",
366 "ravenwood-junit-impl-flag",
367 "mockito-ravenwood-prebuilt",
368 "inline-mockito-ravenwood-prebuilt",
369
370 // It's a stub, so it should be towards the end.
371 "z00-all-updatable-modules-system-stubs",
372 ],
373 jni_libs: [
374 "libandroid_runtime",
375 "libravenwood_runtime",
376 ],
377}
378
379android_ravenwood_libgroup {
380 name: "ravenwood-utils",
381 libs: [
382 "junit",
383 "truth",
384 "flag-junit",
385 "ravenwood-framework",
386 "ravenwood-junit",
387 "mockito-ravenwood-prebuilt",
388 "inline-mockito-ravenwood-prebuilt",
389 ],
390}