blob: 1b1bc6b9afdb42bbd2c793c1ccc4081826048ee2 [file] [log] [blame]
Jiyong Park7fb4b182019-12-20 14:35:43 +09001// Copyright (C) 2019 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// How stubs are generated:
16//
17// raw source files --(metalava)--> stub source files --(javac)--> stub jar files
18//
Anton Hansson2feb3f12020-11-13 11:44:32 +000019// - The metalava conversion is done by droidstub modules
20// - The javac compilation is done by java_library modules
21//
Jiyong Park7fb4b182019-12-20 14:35:43 +090022// The metalava conversion is also responsible for creating API signature files
Anton Hansson2feb3f12020-11-13 11:44:32 +000023// and comparing them against the checked in API signature, and also checking compatibility
24// with the latest frozen API signature.
Jiyong Park7fb4b182019-12-20 14:35:43 +090025
26/////////////////////////////////////////////////////////////////////
Anton Hansson51861e72020-11-13 09:55:29 +000027// These modules provide source files for the stub libraries
Jiyong Park7fb4b182019-12-20 14:35:43 +090028/////////////////////////////////////////////////////////////////////
29
Jihoon Kang2d295ae2024-03-21 23:57:14 +000030soong_config_module_type_import {
31 from: "frameworks/base/api/Android.bp",
32 module_types: ["non_updatable_exportable_droidstubs"],
33}
34
35non_updatable_exportable_droidstubs {
Anton Hansson76d3db42020-04-09 14:16:37 +010036 name: "api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +000037 defaults: [
38 "android-non-updatable-stubs-defaults",
39 "module-classpath-stubs-defaults",
40 ],
Anton Hansson76d3db42020-04-09 14:16:37 +010041 check_api: {
42 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +000043 api_file: ":non-updatable-current.txt",
44 removed_api_file: ":non-updatable-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +010045 },
Anton Hansson37e102e2020-10-05 16:42:40 +010046 last_released: {
47 api_file: ":android-non-updatable.api.public.latest",
48 removed_api_file: ":android-non-updatable-removed.api.public.latest",
Anton Hansson7f3393d2021-04-12 11:56:53 +010049 baseline_file: ":android-non-updatable-incompatibilities.api.public.latest",
Anton Hansson37e102e2020-10-05 16:42:40 +010050 },
Anton Hansson76d3db42020-04-09 14:16:37 +010051 api_lint: {
52 enabled: true,
Anton Hansson4f90aa52021-06-04 22:23:59 +010053 new_since: ":android.api.public.latest",
Adrian Roos440f3cf2023-09-20 10:03:31 +000054 baseline_file: ":non-updatable-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +010055 },
56 },
Anton Hansson85785fe2021-01-20 20:23:34 +000057 dists: [
58 {
Anton Hanssondd8ef672022-01-04 08:53:19 +000059 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +000060 dir: "apistubs/android/public/api",
61 dest: "android-non-updatable.txt",
Anton Hansson85785fe2021-01-20 20:23:34 +000062 },
63 {
Anton Hanssondd8ef672022-01-04 08:53:19 +000064 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +000065 dir: "apistubs/android/public/api",
66 dest: "android-non-updatable-removed.txt",
Anton Hansson85785fe2021-01-20 20:23:34 +000067 },
68 ],
Jihoon Kang2d295ae2024-03-21 23:57:14 +000069 soong_config_variables: {
70 release_hidden_api_exportable_stubs: {
71 dists: [
72 {
73 tag: ".exportable.api.txt",
74 },
75 {
76 tag: ".exportable.removed-api.txt",
77 },
78 ],
79 conditions_default: {
80 dists: [
81 {
82 tag: ".api.txt",
83 },
84 {
85 tag: ".removed-api.txt",
86 },
87 ],
88 },
89 },
90 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +000091 api_surface: "public",
Anton Hansson76d3db42020-04-09 14:16:37 +010092}
93
Anton Hansson84a0e712023-10-23 09:17:45 +000094priv_apps = [
95 "--show-annotation android.annotation.SystemApi\\(" +
96 "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
97 "\\)",
98]
Anton Hansson2feb3f12020-11-13 11:44:32 +000099
Anton Hansson84a0e712023-10-23 09:17:45 +0000100priv_apps_in_stubs = [
101 "--show-for-stub-purposes-annotation android.annotation.SystemApi\\(" +
102 "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
103 "\\)",
104]
Anton Hansson2feb3f12020-11-13 11:44:32 +0000105
Anton Hansson84a0e712023-10-23 09:17:45 +0000106test = ["--show-annotation android.annotation.TestApi"]
Anton Hansson2feb3f12020-11-13 11:44:32 +0000107
Anton Hansson84a0e712023-10-23 09:17:45 +0000108module_libs = [
109 "--show-annotation android.annotation.SystemApi\\(" +
110 "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES" +
111 "\\)",
112]
Anton Hansson81969c22020-02-03 20:45:56 +0000113
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000114non_updatable_exportable_droidstubs {
Anton Hansson76d3db42020-04-09 14:16:37 +0100115 name: "system-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000116 defaults: [
117 "android-non-updatable-stubs-defaults",
118 "module-classpath-stubs-defaults",
119 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000120 flags: priv_apps,
Anton Hansson76d3db42020-04-09 14:16:37 +0100121 check_api: {
122 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000123 api_file: ":non-updatable-system-current.txt",
124 removed_api_file: ":non-updatable-system-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100125 },
Anton Hansson37e102e2020-10-05 16:42:40 +0100126 last_released: {
127 api_file: ":android-non-updatable.api.system.latest",
128 removed_api_file: ":android-non-updatable-removed.api.system.latest",
Anton Hansson240ee482021-04-14 12:52:00 +0100129 baseline_file: ":android-non-updatable-incompatibilities.api.system.latest",
Anton Hansson37e102e2020-10-05 16:42:40 +0100130 },
Anton Hansson76d3db42020-04-09 14:16:37 +0100131 api_lint: {
132 enabled: true,
Anton Hansson4f90aa52021-06-04 22:23:59 +0100133 new_since: ":android.api.system.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000134 baseline_file: ":non-updatable-system-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100135 },
136 },
Anton Hansson85785fe2021-01-20 20:23:34 +0000137 dists: [
138 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000139 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000140 dir: "apistubs/android/system/api",
141 dest: "android-non-updatable.txt",
Anton Hansson85785fe2021-01-20 20:23:34 +0000142 },
143 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000144 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000145 dir: "apistubs/android/system/api",
146 dest: "android-non-updatable-removed.txt",
Anton Hansson85785fe2021-01-20 20:23:34 +0000147 },
148 ],
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000149 soong_config_variables: {
150 release_hidden_api_exportable_stubs: {
151 dists: [
152 {
153 tag: ".exportable.api.txt",
154 },
155 {
156 tag: ".exportable.removed-api.txt",
157 },
158 ],
159 conditions_default: {
160 dists: [
161 {
162 tag: ".api.txt",
163 },
164 {
165 tag: ".removed-api.txt",
166 },
167 ],
168 },
169 },
170 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000171 api_surface: "system",
Anton Hansson76d3db42020-04-09 14:16:37 +0100172}
173
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000174non_updatable_exportable_droidstubs {
Anton Hansson022aac52020-11-05 10:45:13 +0000175 name: "test-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000176 defaults: [
177 "android-non-updatable-stubs-defaults",
178 "module-classpath-stubs-defaults",
179 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000180 flags: test + priv_apps_in_stubs,
Jiyong Park7fb4b182019-12-20 14:35:43 +0900181 check_api: {
182 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000183 api_file: ":non-updatable-test-current.txt",
184 removed_api_file: ":non-updatable-test-removed.txt",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900185 },
186 api_lint: {
187 enabled: true,
Adrian Roos440f3cf2023-09-20 10:03:31 +0000188 new_since: ":android.api.test.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000189 baseline_file: ":non-updatable-test-lint-baseline.txt",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900190 },
191 },
Anton Hansson85785fe2021-01-20 20:23:34 +0000192 dists: [
193 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000194 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000195 dir: "apistubs/android/test/api",
196 dest: "android.txt",
Anton Hansson85785fe2021-01-20 20:23:34 +0000197 },
198 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000199 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000200 dir: "apistubs/android/test/api",
201 dest: "removed.txt",
Anton Hansson85785fe2021-01-20 20:23:34 +0000202 },
203 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000204 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000205 dir: "apistubs/android/test/api",
206 dest: "android-non-updatable.txt",
Anton Hansson85785fe2021-01-20 20:23:34 +0000207 },
208 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000209 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000210 dir: "apistubs/android/test/api",
211 dest: "android-non-updatable-removed.txt",
Anton Hansson85785fe2021-01-20 20:23:34 +0000212 },
213 ],
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000214 soong_config_variables: {
215 release_hidden_api_exportable_stubs: {
216 dists: [
217 {
218 tag: ".exportable.api.txt",
219 },
220 {
221 tag: ".exportable.removed-api.txt",
222 },
223 {
224 tag: ".exportable.api.txt",
225 },
226 {
227 tag: ".exportable.removed-api.txt",
228 },
229 ],
230 conditions_default: {
231 dists: [
232 {
233 tag: ".api.txt",
234 },
235 {
236 tag: ".removed-api.txt",
237 },
238 {
239 tag: ".api.txt",
240 },
241 {
242 tag: ".removed-api.txt",
243 },
244 ],
245 },
246 },
247 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000248 api_surface: "test",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900249}
250
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000251non_updatable_exportable_droidstubs {
Anton Hansson76d3db42020-04-09 14:16:37 +0100252 name: "module-lib-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000253 defaults: [
254 "android-non-updatable-stubs-defaults",
255 "module-classpath-stubs-defaults",
256 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000257 flags: priv_apps_in_stubs + module_libs,
Anton Hansson76d3db42020-04-09 14:16:37 +0100258 check_api: {
259 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000260 api_file: ":non-updatable-module-lib-current.txt",
261 removed_api_file: ":non-updatable-module-lib-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100262 },
Anton Hanssonc3ef1f562020-10-07 14:55:36 +0100263 last_released: {
264 api_file: ":android-non-updatable.api.module-lib.latest",
265 removed_api_file: ":android-non-updatable-removed.api.module-lib.latest",
Junyu Lai2dbb1772022-01-12 17:38:02 +0000266 baseline_file: ":android-non-updatable-incompatibilities.api.module-lib.latest",
Anton Hanssonc3ef1f562020-10-07 14:55:36 +0100267 },
Anton Hansson76d3db42020-04-09 14:16:37 +0100268 api_lint: {
269 enabled: true,
Anton Hansson4f90aa52021-06-04 22:23:59 +0100270 new_since: ":android.api.module-lib.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000271 baseline_file: ":non-updatable-module-lib-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100272 },
273 },
Anton Hansson85785fe2021-01-20 20:23:34 +0000274 dists: [
275 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000276 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000277 dir: "apistubs/android/module-lib/api",
278 dest: "android-non-updatable.txt",
Anton Hansson85785fe2021-01-20 20:23:34 +0000279 },
280 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000281 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000282 dir: "apistubs/android/module-lib/api",
283 dest: "android-non-updatable-removed.txt",
Anton Hansson85785fe2021-01-20 20:23:34 +0000284 },
285 ],
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000286 soong_config_variables: {
287 release_hidden_api_exportable_stubs: {
288 dists: [
289 {
290 tag: ".exportable.api.txt",
291 },
292 {
293 tag: ".exportable.removed-api.txt",
294 },
295 ],
296 conditions_default: {
297 dists: [
298 {
299 tag: ".api.txt",
300 },
301 {
302 tag: ".removed-api.txt",
303 },
304 ],
305 },
306 },
307 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000308 api_surface: "module-lib",
Anton Hansson76d3db42020-04-09 14:16:37 +0100309}
Anton Hansson81969c22020-02-03 20:45:56 +0000310
Jiyong Parke3095162019-12-20 15:30:28 +0900311/////////////////////////////////////////////////////////////////////
Jiyong Park7fb4b182019-12-20 14:35:43 +0900312// android_*_stubs_current modules are the stubs libraries compiled
Anton Hansson2feb3f12020-11-13 11:44:32 +0000313// from stub sources
Jiyong Park7fb4b182019-12-20 14:35:43 +0900314/////////////////////////////////////////////////////////////////////
315
316java_defaults {
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000317 name: "android.jar_defaults",
318 sdk_version: "none",
319 system_modules: "none",
320 java_version: "1.8",
321 compile_dex: true,
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000322 visibility: ["//visibility:public"],
Jihoon Kangdaa35302024-02-12 23:18:52 +0000323 is_stubs_module: true,
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000324}
325
326java_defaults {
Jihoon Kang491c7082023-06-15 18:37:01 +0000327 name: "android-non-updatable_defaults",
Anton Hanssonfbd32f32020-04-09 14:16:37 +0100328 sdk_version: "none",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900329 system_modules: "none",
330 java_version: "1.8",
331 compile_dex: true,
Jihoon Kangdaa35302024-02-12 23:18:52 +0000332 is_stubs_module: true,
Jihoon Kang491c7082023-06-15 18:37:01 +0000333}
334
335java_defaults {
336 name: "android-non-updatable_from_source_defaults",
337 libs: ["stub-annotations"],
338 static_libs: ["framework-res-package-jar"], // Export package of framework-res
Jihoon Kang059b9492023-12-29 00:40:34 +0000339}
340
341java_defaults {
342 name: "android-non-updatable_exportable_from_source_defaults",
Anton Hanssona4108912021-04-09 13:40:11 +0100343 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000344 targets: ["sdk"],
Anton Hanssona4108912021-04-09 13:40:11 +0100345 tag: ".jar",
346 dest: "android-non-updatable.jar",
Anton Hansson240ee482021-04-14 12:52:00 +0100347 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900348}
349
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100350java_library {
Anton Hanssona4748cd2021-04-09 10:16:19 +0100351 name: "android-non-updatable.stubs",
Jihoon Kang491c7082023-06-15 18:37:01 +0000352 defaults: ["android-non-updatable_defaults"],
353 static_libs: [
354 "android-non-updatable.stubs.from-source",
355 ],
356 product_variables: {
357 build_from_text_stub: {
358 static_libs: [
359 "android-non-updatable.stubs.from-text",
360 ],
361 exclude_static_libs: [
362 "android-non-updatable.stubs.from-source",
363 ],
364 },
365 },
366}
367
368java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000369 name: "android-non-updatable.stubs.exportable",
370 defaults: ["android-non-updatable_defaults"],
371 static_libs: [
372 "android-non-updatable.stubs.exportable.from-source",
373 ],
374}
375
376java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000377 name: "android-non-updatable.stubs.system",
378 defaults: ["android-non-updatable_defaults"],
379 static_libs: [
380 "android-non-updatable.stubs.system.from-source",
381 ],
382 product_variables: {
383 build_from_text_stub: {
384 static_libs: [
385 "android-non-updatable.stubs.system.from-text",
386 ],
387 exclude_static_libs: [
388 "android-non-updatable.stubs.system.from-source",
389 ],
390 },
391 },
392}
393
394java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000395 name: "android-non-updatable.stubs.exportable.system",
396 defaults: ["android-non-updatable_defaults"],
397 static_libs: [
398 "android-non-updatable.stubs.exportable.system.from-source",
399 ],
400}
401
402java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000403 name: "android-non-updatable.stubs.module_lib",
404 defaults: ["android-non-updatable_defaults"],
405 static_libs: [
406 "android-non-updatable.stubs.module_lib.from-source",
407 ],
408 product_variables: {
409 build_from_text_stub: {
410 static_libs: [
411 "android-non-updatable.stubs.module_lib.from-text",
412 ],
413 exclude_static_libs: [
414 "android-non-updatable.stubs.module_lib.from-source",
415 ],
416 },
417 },
418}
419
420java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000421 name: "android-non-updatable.stubs.exportable.module_lib",
422 defaults: ["android-non-updatable_defaults"],
423 static_libs: [
424 "android-non-updatable.stubs.exportable.module_lib.from-source",
425 ],
426}
427
428java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000429 name: "android-non-updatable.stubs.test",
430 defaults: ["android-non-updatable_defaults"],
431 static_libs: [
432 "android-non-updatable.stubs.test.from-source",
433 ],
434 product_variables: {
435 build_from_text_stub: {
436 static_libs: [
437 "android-non-updatable.stubs.test.from-text",
438 ],
439 exclude_static_libs: [
440 "android-non-updatable.stubs.test.from-source",
441 ],
442 },
443 },
444}
445
446java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000447 name: "android-non-updatable.stubs.exportable.test",
448 defaults: ["android-non-updatable_defaults"],
449 static_libs: [
450 "android-non-updatable.stubs.exportable.test.from-source",
451 ],
452}
453
454java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000455 name: "android-non-updatable.stubs.from-source",
456 defaults: [
457 "android-non-updatable_defaults",
458 "android-non-updatable_from_source_defaults",
459 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100460 srcs: [":api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000461 libs: ["all-modules-public-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000462}
463
464java_library {
465 name: "android-non-updatable.stubs.exportable.from-source",
466 defaults: [
467 "android-non-updatable_defaults",
468 "android-non-updatable_from_source_defaults",
469 "android-non-updatable_exportable_from_source_defaults",
470 ],
471 srcs: [":api-stubs-docs-non-updatable{.exportable}"],
472 libs: ["all-modules-public-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100473 dist: {
474 dir: "apistubs/android/public",
475 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100476}
477
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100478java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000479 name: "android-non-updatable.stubs.system.from-source",
480 defaults: [
481 "android-non-updatable_defaults",
482 "android-non-updatable_from_source_defaults",
483 ],
Anton Hansson240ee482021-04-14 12:52:00 +0100484 srcs: [":system-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000485 libs: ["all-modules-system-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000486}
487
488java_library {
489 name: "android-non-updatable.stubs.exportable.system.from-source",
490 defaults: [
491 "android-non-updatable_defaults",
492 "android-non-updatable_from_source_defaults",
493 "android-non-updatable_exportable_from_source_defaults",
494 ],
495 srcs: [":system-api-stubs-docs-non-updatable{.exportable}"],
496 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100497 dist: {
498 dir: "apistubs/android/system",
499 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100500}
501
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100502java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000503 name: "android-non-updatable.stubs.module_lib.from-source",
504 defaults: [
505 "android-non-updatable_defaults",
506 "android-non-updatable_from_source_defaults",
507 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100508 srcs: [":module-lib-api-stubs-docs-non-updatable"],
Anton Hansson648b0db2023-11-06 19:24:42 +0000509 libs: non_updatable_api_deps_on_modules,
Jihoon Kang059b9492023-12-29 00:40:34 +0000510}
511
512java_library {
513 name: "android-non-updatable.stubs.exportable.module_lib.from-source",
514 defaults: [
515 "android-non-updatable_defaults",
516 "android-non-updatable_from_source_defaults",
517 "android-non-updatable_exportable_from_source_defaults",
518 ],
519 srcs: [":module-lib-api-stubs-docs-non-updatable{.exportable}"],
520 libs: non_updatable_api_deps_on_modules,
Anton Hanssona4108912021-04-09 13:40:11 +0100521 dist: {
522 dir: "apistubs/android/module-lib",
523 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100524}
525
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100526java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000527 name: "android-non-updatable.stubs.test.from-source",
528 defaults: [
529 "android-non-updatable_defaults",
530 "android-non-updatable_from_source_defaults",
531 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100532 srcs: [":test-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000533 libs: ["all-modules-system-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000534}
535
536java_library {
537 name: "android-non-updatable.stubs.exportable.test.from-source",
538 defaults: [
539 "android-non-updatable_defaults",
540 "android-non-updatable_from_source_defaults",
541 "android-non-updatable_exportable_from_source_defaults",
542 ],
543 srcs: [":test-api-stubs-docs-non-updatable{.exportable}"],
544 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100545 dist: {
546 dir: "apistubs/android/test",
547 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100548}
549
550java_defaults {
Jihoon Kang491c7082023-06-15 18:37:01 +0000551 name: "android-non-updatable_from_text_defaults",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000552 static_libs: ["framework-res-package-jar"],
553 libs: ["stub-annotations"],
554}
555
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000556java_defaults {
557 name: "android-non-updatable_everything_from_text_defaults",
558 defaults: [
559 "android-non-updatable_from_text_defaults",
560 ],
561 stubs_type: "everything",
562}
563
Jihoon Kang0c101db2023-03-14 07:03:46 +0000564java_api_library {
565 name: "android-non-updatable.stubs.from-text",
566 api_surface: "public",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000567 api_contributions: [
568 "api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000569 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000570 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000571 full_api_surface_stub: "android_stubs_current.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000572}
573
574java_api_library {
575 name: "android-non-updatable.stubs.system.from-text",
576 api_surface: "system",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000577 api_contributions: [
578 "api-stubs-docs-non-updatable.api.contribution",
579 "system-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000580 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000581 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000582 full_api_surface_stub: "android_system_stubs_current.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000583}
584
585java_api_library {
586 name: "android-non-updatable.stubs.test.from-text",
587 api_surface: "test",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000588 api_contributions: [
589 "api-stubs-docs-non-updatable.api.contribution",
590 "system-api-stubs-docs-non-updatable.api.contribution",
591 "test-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000592 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000593 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000594 full_api_surface_stub: "android_test_stubs_current.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000595}
596
597java_api_library {
598 name: "android-non-updatable.stubs.module_lib.from-text",
599 api_surface: "module_lib",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000600 api_contributions: [
601 "api-stubs-docs-non-updatable.api.contribution",
602 "system-api-stubs-docs-non-updatable.api.contribution",
603 "module-lib-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000604 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000605 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000606 full_api_surface_stub: "android_module_lib_stubs_current_full.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000607}
608
Jihoon Kang4683b142023-10-05 23:42:51 +0000609// This module generates a stub jar that is a union of the test and module lib
610// non-updatable api contributions. Modules should not depend on the stub jar
611// generated from this module, as this module is strictly used for hiddenapi only.
612java_api_library {
613 name: "android-non-updatable.stubs.test_module_lib",
614 api_surface: "module_lib",
615 api_contributions: [
616 "api-stubs-docs-non-updatable.api.contribution",
617 "system-api-stubs-docs-non-updatable.api.contribution",
618 "test-api-stubs-docs-non-updatable.api.contribution",
619 "module-lib-api-stubs-docs-non-updatable.api.contribution",
620 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000621 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang4683b142023-10-05 23:42:51 +0000622 full_api_surface_stub: "android_test_module_lib_stubs_current.from-text",
623
624 // This module is only used for hiddenapi, and other modules should not
625 // depend on this module.
626 visibility: ["//visibility:private"],
627}
628
Jihoon Kang0c101db2023-03-14 07:03:46 +0000629java_defaults {
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000630 name: "android_stubs_dists_default",
631 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000632 targets: ["sdk"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000633 tag: ".jar",
634 dest: "android.jar",
635 },
Anton Hansson86925682021-04-14 14:54:43 +0100636 defaults_visibility: ["//frameworks/base/services"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000637}
638
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100639java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000640 name: "android_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000641 static_libs: [
642 "all-modules-public-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100643 "android-non-updatable.stubs",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100644 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100645 ],
Anton Hansson65057af2021-04-14 18:52:08 +0100646 defaults: ["android.jar_defaults"],
Jiyong Park7fb4b182019-12-20 14:35:43 +0900647}
648
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100649java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000650 name: "android_stubs_current_exportable.from-source",
651 static_libs: [
652 "all-modules-public-stubs-exportable",
653 "android-non-updatable.stubs.exportable",
654 "private-stub-annotations-jar",
655 ],
656 defaults: ["android.jar_defaults"],
657}
658
659java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000660 name: "android_system_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000661 static_libs: [
662 "all-modules-system-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100663 "android-non-updatable.stubs.system",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100664 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100665 ],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000666 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100667 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000668 ],
669 visibility: ["//frameworks/base/services"],
670}
671
672java_library {
673 name: "android_system_stubs_current_exportable.from-source",
674 static_libs: [
675 "all-modules-system-stubs-exportable",
676 "android-non-updatable.stubs.exportable.system",
677 "private-stub-annotations-jar",
678 ],
679 defaults: [
680 "android.jar_defaults",
Anton Hanssonc3002e52020-11-18 18:23:55 +0000681 "android_stubs_dists_default",
682 ],
683 dist: {
684 dir: "apistubs/android/system",
685 },
686 dists: [
687 {
688 // Legacy dist path
Anton Hanssondd8ef672022-01-04 08:53:19 +0000689 targets: ["sdk"],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000690 tag: ".jar",
691 dest: "android_system.jar",
692 },
693 ],
Anton Hansson76d3db42020-04-09 14:16:37 +0100694}
695
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100696java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000697 name: "android_test_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000698 static_libs: [
Nikita Ioffe5593fbb2022-12-01 14:52:34 +0000699 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
700 // include the SystemApi of framework-non-updatable-sources.
701 "all-updatable-modules-system-stubs",
702 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
703 "all-non-updatable-modules-test-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100704 "android-non-updatable.stubs.test",
Anton Hansson7ce31c12020-10-15 18:38:49 +0100705 "private-stub-annotations-jar",
706 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000707 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100708 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000709 ],
710 visibility: ["//frameworks/base/services"],
711}
712
713java_library {
714 name: "android_test_stubs_current_exportable.from-source",
715 static_libs: [
716 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
717 // include the SystemApi of framework-non-updatable-sources.
718 "all-updatable-modules-system-stubs-exportable",
719 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
720 "all-non-updatable-modules-test-stubs-exportable",
721 "android-non-updatable.stubs.exportable.test",
722 "private-stub-annotations-jar",
723 ],
724 defaults: [
725 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000726 "android_stubs_dists_default",
727 ],
728 dist: {
729 dir: "apistubs/android/test",
730 },
Jiyong Parke3095162019-12-20 15:30:28 +0900731}
732
Jihoon Kang059b9492023-12-29 00:40:34 +0000733// This module does not need to be copied to dist
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100734java_library {
Mark Whitee35b1382023-08-12 01:31:26 +0000735 name: "android_test_frameworks_core_stubs_current.from-source",
736 static_libs: [
737 "all-updatable-modules-system-stubs",
738 "android-non-updatable.stubs.test",
Mark Whitee35b1382023-08-12 01:31:26 +0000739 ],
740 defaults: [
741 "android.jar_defaults",
Mark Whitee35b1382023-08-12 01:31:26 +0000742 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000743 visibility: ["//frameworks/base/services"],
Mark Whitee35b1382023-08-12 01:31:26 +0000744}
745
746java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000747 name: "android_module_lib_stubs_current.from-source",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000748 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100749 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000750 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100751 static_libs: [
752 "android-non-updatable.stubs.module_lib",
Victor Chang6b107a92021-06-17 23:49:42 +0100753 "art.module.public.api.stubs.module_lib",
Giulio Fiscella68a04112021-11-30 16:32:44 +0000754 "i18n.module.public.api.stubs",
Anton Hanssonb7d532e2021-02-05 11:40:25 +0000755 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000756 visibility: ["//frameworks/base/services"],
757}
758
759java_library {
760 name: "android_module_lib_stubs_current_exportable.from-source",
761 defaults: [
762 "android.jar_defaults",
763 "android_stubs_dists_default",
764 ],
765 static_libs: [
766 "android-non-updatable.stubs.exportable.module_lib",
767 "art.module.public.api.stubs.exportable.module_lib",
768 "i18n.module.public.api.stubs.exportable",
769 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000770 dist: {
771 dir: "apistubs/android/module-lib",
772 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900773}
774
Andrei Oneafaa271a2021-03-17 13:32:51 +0000775java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000776 name: "android_system_server_stubs_current.from-source",
Anton Hansson21fb1082023-03-03 16:22:42 +0000777 defaults: [
778 "android.jar_defaults",
Anton Hansson21fb1082023-03-03 16:22:42 +0000779 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000780 srcs: [":services-non-updatable-stubs"],
781 installable: false,
782 static_libs: [
Jihoon Kang1453baa2023-05-27 05:32:30 +0000783 "android_module_lib_stubs_current.from-source",
Andrei Oneafaa271a2021-03-17 13:32:51 +0000784 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000785 visibility: ["//frameworks/base/services"],
786}
787
788java_library {
789 name: "android_system_server_stubs_current_exportable.from-source",
790 defaults: [
791 "android.jar_defaults",
792 "android_stubs_dists_default",
793 ],
794 srcs: [":services-non-updatable-stubs{.exportable}"],
795 installable: false,
796 static_libs: [
797 "android_module_lib_stubs_current_exportable.from-source",
798 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000799 dist: {
800 dir: "apistubs/android/system-server",
801 },
802}
803
Colin Crosscf87a572022-10-20 14:06:53 -0700804java_library {
805 name: "android_stubs_private_jar",
806 defaults: ["android.jar_defaults"],
807 visibility: [
808 "//visibility:override",
809 "//visibility:private",
810 ],
811 static_libs: [
812 "stable.core.platform.api.stubs",
813 "core-lambda-stubs-for-system-modules",
814 "core-generated-annotation-stubs",
815 "framework",
816 "ext",
817 "framework-res-package-jar",
818 // The order of this matters, it has to be last to provide a
819 // package-private androidx.annotation.RecentlyNonNull without
820 // overriding the public android.annotation.Nullable in framework.jar
821 // with its own package-private android.annotation.Nullable.
822 "private-stub-annotations-jar",
823 ],
Jihoon Kangdaa35302024-02-12 23:18:52 +0000824 is_stubs_module: true,
Colin Crosscf87a572022-10-20 14:06:53 -0700825}
826
827java_genrule {
828 name: "android_stubs_private_hjar",
Colin Crosscf87a572022-10-20 14:06:53 -0700829 srcs: [":android_stubs_private_jar{.hjar}"],
830 out: ["android_stubs_private.jar"],
831 cmd: "cp $(in) $(out)",
832}
833
834java_library {
835 name: "android_stubs_private",
836 defaults: ["android_stubs_dists_default"],
Colin Crosscf87a572022-10-20 14:06:53 -0700837 sdk_version: "none",
838 system_modules: "none",
839 static_libs: ["android_stubs_private_hjar"],
840 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000841 // Add to private_api_stubs dist target for easier packaging by scripts. This module is
842 // useful for creating a platform SDK, which can be packaged in ANDROID_HOME and used from
843 // Gradle, allowing for development of platform apps that make use of hidden APIs.
844 targets: ["private_api_stubs"],
Colin Crosscf87a572022-10-20 14:06:53 -0700845 dir: "apistubs/android/private",
846 },
847}
848
849java_genrule {
850 name: "android_stubs_private_framework_aidl",
Colin Crosscf87a572022-10-20 14:06:53 -0700851 tools: ["sdkparcelables"],
852 srcs: [":android_stubs_private"],
853 out: ["framework.aidl"],
854 cmd: "rm -f $(genDir)/framework.aidl.merged && " +
855 "for i in $(in); do " +
856 " rm -f $(genDir)/framework.aidl.tmp && " +
857 " $(location sdkparcelables) $$i $(genDir)/framework.aidl.tmp && " +
858 " cat $(genDir)/framework.aidl.tmp >> $(genDir)/framework.aidl.merged; " +
859 "done && " +
860 "sort -u $(genDir)/framework.aidl.merged > $(out)",
861 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000862 targets: [
863 "sdk",
864 // Add to private_api_stubs dist target for easier packaging by scripts.
865 // See explanation in the "android_stubs_private" module above.
866 "private_api_stubs",
867 ],
Colin Crosscf87a572022-10-20 14:06:53 -0700868 dir: "apistubs/android/private",
869 },
870}
871
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000872//
873// Java API defaults and libraries for single tree build
874//
875
876java_defaults {
877 name: "stub-annotation-defaults",
878 libs: [
879 "stub-annotations",
880 ],
881 static_libs: [
882 // stub annotations do not contribute to the API surfaces but are statically
883 // linked in the stubs for API surfaces (see frameworks/base/StubLibraries.bp).
884 // This is because annotation processors insist on loading the classes for any
885 // annotations found, thus should exist inside android.jar.
886 "private-stub-annotations-jar",
887 ],
Jihoon Kangdaa35302024-02-12 23:18:52 +0000888 is_stubs_module: true,
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000889}
890
891// Listing of API domains contribution and dependencies per API surfaces
892java_defaults {
893 name: "android_test_stubs_current_contributions",
894 api_surface: "test",
895 api_contributions: [
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000896 "framework-virtualization.stubs.source.test.api.contribution",
Mark White3cc5e002023-08-07 11:18:09 +0000897 "framework-location.stubs.source.test.api.contribution",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000898 ],
899}
900
901java_defaults {
902 name: "android_test_frameworks_core_stubs_current_contributions",
903 api_surface: "test",
904 api_contributions: [
905 "test-api-stubs-docs-non-updatable.api.contribution",
906 ],
907}
908
909java_defaults {
910 name: "android_module_lib_stubs_current_contributions",
911 api_surface: "module-lib",
912 api_contributions: [
913 "api-stubs-docs-non-updatable.api.contribution",
914 "system-api-stubs-docs-non-updatable.api.contribution",
915 "module-lib-api-stubs-docs-non-updatable.api.contribution",
916 "art.module.public.api.stubs.source.api.contribution",
917 "art.module.public.api.stubs.source.system.api.contribution",
918 "art.module.public.api.stubs.source.module_lib.api.contribution",
919 "i18n.module.public.api.stubs.source.api.contribution",
920 "i18n.module.public.api.stubs.source.system.api.contribution",
921 "i18n.module.public.api.stubs.source.module_lib.api.contribution",
922 ],
923}
924
925// Java API library definitions per API surface
926java_api_library {
927 name: "android_stubs_current.from-text",
928 api_surface: "public",
929 defaults: [
930 // This module is dynamically created at frameworks/base/api/api.go
931 // instead of being written out, in order to minimize edits in the codebase
932 // when there is a change in the list of modules.
933 // that contributes to an api surface.
934 "android_stubs_current_contributions",
935 "stub-annotation-defaults",
936 ],
937 api_contributions: [
938 "api-stubs-docs-non-updatable.api.contribution",
939 ],
940 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000941 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000942 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000943}
944
945java_api_library {
946 name: "android_system_stubs_current.from-text",
947 api_surface: "system",
948 defaults: [
949 "android_stubs_current_contributions",
950 "android_system_stubs_current_contributions",
951 "stub-annotation-defaults",
952 ],
953 api_contributions: [
954 "api-stubs-docs-non-updatable.api.contribution",
955 "system-api-stubs-docs-non-updatable.api.contribution",
956 ],
957 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000958 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000959 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000960}
961
962java_api_library {
963 name: "android_test_stubs_current.from-text",
964 api_surface: "test",
965 defaults: [
966 "android_stubs_current_contributions",
967 "android_system_stubs_current_contributions",
968 "android_test_stubs_current_contributions",
969 "stub-annotation-defaults",
970 ],
971 api_contributions: [
972 "api-stubs-docs-non-updatable.api.contribution",
973 "system-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang1c5022b2023-09-20 22:02:29 +0000974 "test-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000975 ],
976 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000977 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000978 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000979}
980
981java_api_library {
982 name: "android_test_frameworks_core_stubs_current.from-text",
983 api_surface: "test",
984 defaults: [
985 "android_stubs_current_contributions",
986 "android_system_stubs_current_contributions",
987 "android_test_frameworks_core_stubs_current_contributions",
Jihoon Kangbeeb35a2023-10-17 22:22:24 +0000988 ],
989 libs: [
990 "stub-annotations",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000991 ],
992 api_contributions: [
993 "api-stubs-docs-non-updatable.api.contribution",
994 "system-api-stubs-docs-non-updatable.api.contribution",
995 ],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000996 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000997 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000998}
999
1000java_api_library {
1001 name: "android_module_lib_stubs_current_full.from-text",
1002 api_surface: "module-lib",
1003 defaults: [
1004 "android_stubs_current_contributions",
1005 "android_system_stubs_current_contributions",
1006 "android_module_lib_stubs_current_contributions_full",
1007 ],
1008 libs: [
1009 "stub-annotations",
1010 ],
1011 api_contributions: [
1012 "api-stubs-docs-non-updatable.api.contribution",
1013 "system-api-stubs-docs-non-updatable.api.contribution",
1014 "module-lib-api-stubs-docs-non-updatable.api.contribution",
1015 ],
1016 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001017 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001018 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001019}
1020
1021java_api_library {
1022 name: "android_module_lib_stubs_current.from-text",
1023 api_surface: "module-lib",
1024 defaults: [
1025 "android_module_lib_stubs_current_contributions",
1026 ],
1027 libs: [
1028 "android_module_lib_stubs_current_full.from-text",
1029 "stub-annotations",
1030 ],
1031 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001032 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001033 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001034}
1035
1036java_api_library {
Jihoon Kang4683b142023-10-05 23:42:51 +00001037 name: "android_test_module_lib_stubs_current.from-text",
1038 api_surface: "module-lib",
1039 defaults: [
1040 "android_stubs_current_contributions",
1041 "android_system_stubs_current_contributions",
1042 "android_test_stubs_current_contributions",
1043 "android_module_lib_stubs_current_contributions",
1044 ],
1045 libs: [
1046 "android_module_lib_stubs_current_full.from-text",
1047 "stub-annotations",
1048 ],
1049 api_contributions: [
1050 "test-api-stubs-docs-non-updatable.api.contribution",
1051 ],
1052
1053 // This module is only used to build android-non-updatable.stubs.test_module_lib
1054 // and other modules should not depend on this module.
1055 visibility: [
1056 "//visibility:private",
1057 ],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001058 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001059 stubs_type: "everything",
Jihoon Kang4683b142023-10-05 23:42:51 +00001060}
1061
1062java_api_library {
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001063 name: "android_system_server_stubs_current.from-text",
1064 api_surface: "system-server",
1065 api_contributions: [
1066 "services-non-updatable-stubs.api.contribution",
1067 ],
1068 libs: [
1069 "android_module_lib_stubs_current.from-text",
1070 "stub-annotations",
1071 ],
1072 static_libs: [
1073 "android_module_lib_stubs_current.from-text",
1074 ],
1075 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001076 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001077 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001078}
1079
Anton Hansson36bc27c2021-09-14 15:45:13 +01001080////////////////////////////////////////////////////////////////////////
1081// api-versions.xml generation, for public and system. This API database
1082// also contains the android.test.* APIs.
1083////////////////////////////////////////////////////////////////////////
1084
1085java_library {
1086 name: "android_stubs_current_with_test_libs",
1087 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001088 "android_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +01001089 "android.test.base.stubs",
1090 "android.test.mock.stubs",
1091 "android.test.runner.stubs",
1092 ],
1093 defaults: ["android.jar_defaults"],
1094 visibility: [
1095 "//visibility:override",
1096 "//visibility:private",
1097 ],
1098}
1099
1100java_library {
1101 name: "android_system_stubs_current_with_test_libs",
1102 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001103 "android_system_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +01001104 "android.test.base.stubs.system",
1105 "android.test.mock.stubs.system",
1106 "android.test.runner.stubs.system",
1107 ],
1108 defaults: ["android.jar_defaults"],
1109 visibility: [
1110 "//visibility:override",
1111 "//visibility:private",
1112 ],
1113}
1114
Cole Faustdcda3702022-10-04 14:46:35 -07001115java_library {
1116 name: "android_module_stubs_current_with_test_libs",
1117 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001118 "android_module_lib_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -07001119 "android.test.base.stubs",
1120 "android.test.mock.stubs",
1121 "android.test.runner.stubs",
1122 ],
1123 defaults: ["android.jar_defaults"],
1124 visibility: [
1125 "//visibility:override",
1126 "//visibility:private",
1127 ],
1128}
1129
1130java_library {
1131 name: "android_system_server_stubs_current_with_test_libs",
1132 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001133 "android_system_server_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -07001134 "android.test.base.stubs.system",
1135 "android.test.mock.stubs.system",
1136 "android.test.runner.stubs.system",
1137 ],
1138 defaults: ["android.jar_defaults"],
1139 visibility: [
1140 "//visibility:override",
1141 "//visibility:private",
1142 ],
1143}
1144
Anton Hansson36bc27c2021-09-14 15:45:13 +01001145droidstubs {
1146 name: "api_versions_public",
1147 srcs: [":android_stubs_current_with_test_libs{.jar}"],
1148 generate_stubs: false,
1149 api_levels_annotations_enabled: true,
1150 api_levels_annotations_dirs: [
1151 "sdk-dir",
1152 "api-versions-jars-dir",
1153 ],
Cole Faustdcda3702022-10-04 14:46:35 -07001154 api_levels_sdk_type: "public",
Mårten Kongstad54845332022-09-06 15:50:37 +02001155 extensions_info_file: ":sdk-extensions-info",
Anton Hanssonca6e67a2023-03-03 17:55:09 +00001156 visibility: ["//frameworks/base"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001157}
1158
1159droidstubs {
1160 name: "api_versions_system",
1161 srcs: [":android_system_stubs_current_with_test_libs{.jar}"],
1162 generate_stubs: false,
1163 api_levels_annotations_enabled: true,
1164 api_levels_annotations_dirs: [
1165 "sdk-dir",
1166 "api-versions-jars-dir",
1167 ],
1168 api_levels_sdk_type: "system",
Mårten Kongstad54845332022-09-06 15:50:37 +02001169 extensions_info_file: ":sdk-extensions-info",
Paul Duffin75f63602024-01-05 18:15:59 +00001170 dists: [
1171 // Make the api-versions.xml file for the system API available in the
1172 // sdk build target.
1173 {
1174 targets: ["sdk"],
1175 dest: "api-versions_system.xml",
1176 tag: ".api_versions.xml",
1177 },
1178 ],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001179}
1180
Cole Faustbf4ce752023-02-08 12:46:06 -08001181// This module can be built with:
Cole Faust24e730f2024-01-08 14:11:11 -08001182// m out/soong/.intermediates/frameworks/base/api/api_versions_module_lib/android_common/metalava/api-versions.xml
Cole Faustdcda3702022-10-04 14:46:35 -07001183droidstubs {
1184 name: "api_versions_module_lib",
1185 srcs: [":android_module_stubs_current_with_test_libs{.jar}"],
1186 generate_stubs: false,
1187 api_levels_annotations_enabled: true,
Cole Faustbf4ce752023-02-08 12:46:06 -08001188 // this only has the non-updatable portions of the module lib sdk,
1189 // which can reference classes from updatable apexes, so remove references to them
1190 // from this api_versions file.
1191 flags: ["--remove-missing-class-references-in-api-levels"],
Cole Faustdcda3702022-10-04 14:46:35 -07001192 api_levels_annotations_dirs: [
1193 "sdk-dir",
1194 "api-versions-jars-dir",
1195 ],
1196 api_levels_sdk_type: "module-lib",
Cole Faust1deced12023-02-15 13:24:18 -08001197 // extensions_info_file is purposefully omitted, because this module should just be
1198 // the non-updatable portions of the sdk, and extension sdks are updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001199}
1200
1201droidstubs {
1202 name: "api_versions_system_server",
1203 srcs: [":android_system_server_stubs_current_with_test_libs{.jar}"],
1204 generate_stubs: false,
1205 api_levels_annotations_enabled: true,
Cole Faustbf4ce752023-02-08 12:46:06 -08001206 // this only has the non-updatable portions of the system server sdk,
1207 // which can reference classes from updatable apexes, so remove references to them
1208 // from this api_versions file.
1209 flags: ["--remove-missing-class-references-in-api-levels"],
Cole Faustdcda3702022-10-04 14:46:35 -07001210 api_levels_annotations_dirs: [
1211 "sdk-dir",
1212 "api-versions-jars-dir",
1213 ],
1214 api_levels_sdk_type: "system-server",
Cole Faust1deced12023-02-15 13:24:18 -08001215 // extensions_info_file is purposefully omitted, because this module should just be
1216 // the non-updatable portions of the sdk, and extension sdks are updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001217}
1218
Jiyong Park7fb4b182019-12-20 14:35:43 +09001219/////////////////////////////////////////////////////////////////////
1220// hwbinder.stubs provides APIs required for building HIDL Java
1221// libraries.
1222/////////////////////////////////////////////////////////////////////
1223
1224droidstubs {
1225 name: "hwbinder-stubs-docs",
Anton Hansson23f319f2023-03-03 16:04:02 +00001226 srcs: [":hwbinder-stubs-srcs"],
Colin Cross037d7fb2021-03-25 17:01:55 -07001227 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001228 installable: false,
1229 sdk_version: "core_platform",
1230 annotations_enabled: true,
Anton Hansson48ee95e2020-05-02 17:49:26 +01001231 previous_api: ":android.api.public.latest",
Jiyong Park7fb4b182019-12-20 14:35:43 +09001232 merge_annotations_dirs: [
1233 "metalava-manual",
1234 ],
Anton Hansson84a0e712023-10-23 09:17:45 +00001235 flags: priv_apps,
Jiyong Park7fb4b182019-12-20 14:35:43 +09001236}
1237
Anton Hanssonbbdd64b2021-04-26 18:47:39 +01001238java_library {
Jiyong Park7fb4b182019-12-20 14:35:43 +09001239 name: "hwbinder.stubs",
1240 sdk_version: "core_current",
Colin Cross037d7fb2021-03-25 17:01:55 -07001241 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001242 srcs: [
1243 ":hwbinder-stubs-docs",
1244 ],
Anton Hansson86925682021-04-14 14:54:43 +01001245 visibility: ["//visibility:public"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001246}