blob: 5b7e25bbbb4c0dea7eca171beeacdb2cd49d4d95 [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: {
Paul Duffinf75e9102024-05-20 16:20:39 +010047 api_file: ":android-non-updatable.api.combined.public.latest",
48 removed_api_file: ":android-non-updatable-removed.api.combined.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,
Paul Duffin98bc0112024-05-17 14:21:44 +010053 new_since: ":android.api.combined.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 },
Jihoon Kang2d295ae2024-03-21 23:57:14 +000057 soong_config_variables: {
58 release_hidden_api_exportable_stubs: {
59 dists: [
60 {
Jihoon Kang00f480e2024-04-10 18:55:36 +000061 targets: ["sdk"],
62 dir: "apistubs/android/public/api",
63 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +000064 tag: ".exportable.api.txt",
65 },
66 {
Jihoon Kang00f480e2024-04-10 18:55:36 +000067 targets: ["sdk"],
68 dir: "apistubs/android/public/api",
69 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +000070 tag: ".exportable.removed-api.txt",
71 },
72 ],
73 conditions_default: {
74 dists: [
75 {
Jihoon Kang00f480e2024-04-10 18:55:36 +000076 targets: ["sdk"],
77 dir: "apistubs/android/public/api",
78 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +000079 tag: ".api.txt",
80 },
81 {
Jihoon Kang00f480e2024-04-10 18:55:36 +000082 targets: ["sdk"],
83 dir: "apistubs/android/public/api",
84 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +000085 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: {
Paul Duffinf75e9102024-05-20 16:20:39 +0100127 api_file: ":android-non-updatable.api.combined.system.latest",
128 removed_api_file: ":android-non-updatable-removed.api.combined.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,
Paul Duffin98bc0112024-05-17 14:21:44 +0100133 new_since: ":android.api.combined.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 },
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000137 soong_config_variables: {
138 release_hidden_api_exportable_stubs: {
139 dists: [
140 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000141 targets: ["sdk"],
142 dir: "apistubs/android/system/api",
143 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000144 tag: ".exportable.api.txt",
145 },
146 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000147 targets: ["sdk"],
148 dir: "apistubs/android/system/api",
149 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000150 tag: ".exportable.removed-api.txt",
151 },
152 ],
153 conditions_default: {
154 dists: [
155 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000156 targets: ["sdk"],
157 dir: "apistubs/android/system/api",
158 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000159 tag: ".api.txt",
160 },
161 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000162 targets: ["sdk"],
163 dir: "apistubs/android/system/api",
164 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000165 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,
Paul Duffin98bc0112024-05-17 14:21:44 +0100188 new_since: ":android.api.combined.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 },
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000192 soong_config_variables: {
193 release_hidden_api_exportable_stubs: {
194 dists: [
195 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000196 targets: ["sdk"],
197 dir: "apistubs/android/test/api",
198 dest: "android.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000199 tag: ".exportable.api.txt",
200 },
201 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000202 targets: ["sdk"],
203 dir: "apistubs/android/test/api",
204 dest: "removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000205 tag: ".exportable.removed-api.txt",
206 },
207 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000208 targets: ["sdk"],
209 dir: "apistubs/android/test/api",
210 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000211 tag: ".exportable.api.txt",
212 },
213 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000214 targets: ["sdk"],
215 dir: "apistubs/android/test/api",
216 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000217 tag: ".exportable.removed-api.txt",
218 },
219 ],
220 conditions_default: {
221 dists: [
222 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000223 targets: ["sdk"],
224 dir: "apistubs/android/test/api",
225 dest: "android.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000226 tag: ".api.txt",
227 },
228 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000229 targets: ["sdk"],
230 dir: "apistubs/android/test/api",
231 dest: "removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000232 tag: ".removed-api.txt",
233 },
234 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000235 targets: ["sdk"],
236 dir: "apistubs/android/test/api",
237 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000238 tag: ".api.txt",
239 },
240 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000241 targets: ["sdk"],
242 dir: "apistubs/android/test/api",
243 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000244 tag: ".removed-api.txt",
245 },
246 ],
247 },
248 },
249 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000250 api_surface: "test",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900251}
252
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000253non_updatable_exportable_droidstubs {
Anton Hansson76d3db42020-04-09 14:16:37 +0100254 name: "module-lib-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000255 defaults: [
256 "android-non-updatable-stubs-defaults",
257 "module-classpath-stubs-defaults",
258 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000259 flags: priv_apps_in_stubs + module_libs,
Anton Hansson76d3db42020-04-09 14:16:37 +0100260 check_api: {
261 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000262 api_file: ":non-updatable-module-lib-current.txt",
263 removed_api_file: ":non-updatable-module-lib-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100264 },
Anton Hanssonc3ef1f562020-10-07 14:55:36 +0100265 last_released: {
Paul Duffinf75e9102024-05-20 16:20:39 +0100266 api_file: ":android-non-updatable.api.combined.module-lib.latest",
267 removed_api_file: ":android-non-updatable-removed.api.combined.module-lib.latest",
Junyu Lai2dbb1772022-01-12 17:38:02 +0000268 baseline_file: ":android-non-updatable-incompatibilities.api.module-lib.latest",
Anton Hanssonc3ef1f562020-10-07 14:55:36 +0100269 },
Anton Hansson76d3db42020-04-09 14:16:37 +0100270 api_lint: {
271 enabled: true,
Paul Duffin98bc0112024-05-17 14:21:44 +0100272 new_since: ":android.api.combined.module-lib.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000273 baseline_file: ":non-updatable-module-lib-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100274 },
275 },
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000276 soong_config_variables: {
277 release_hidden_api_exportable_stubs: {
278 dists: [
279 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000280 targets: ["sdk"],
281 dir: "apistubs/android/module-lib/api",
282 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000283 tag: ".exportable.api.txt",
284 },
285 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000286 targets: ["sdk"],
287 dir: "apistubs/android/module-lib/api",
288 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000289 tag: ".exportable.removed-api.txt",
290 },
291 ],
292 conditions_default: {
293 dists: [
294 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000295 targets: ["sdk"],
296 dir: "apistubs/android/module-lib/api",
297 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000298 tag: ".api.txt",
299 },
300 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000301 targets: ["sdk"],
302 dir: "apistubs/android/module-lib/api",
303 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000304 tag: ".removed-api.txt",
305 },
306 ],
307 },
308 },
309 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000310 api_surface: "module-lib",
Anton Hansson76d3db42020-04-09 14:16:37 +0100311}
Anton Hansson81969c22020-02-03 20:45:56 +0000312
Jiyong Parke3095162019-12-20 15:30:28 +0900313/////////////////////////////////////////////////////////////////////
Jiyong Park7fb4b182019-12-20 14:35:43 +0900314// android_*_stubs_current modules are the stubs libraries compiled
Anton Hansson2feb3f12020-11-13 11:44:32 +0000315// from stub sources
Jiyong Park7fb4b182019-12-20 14:35:43 +0900316/////////////////////////////////////////////////////////////////////
317
318java_defaults {
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000319 name: "android.jar_defaults",
320 sdk_version: "none",
321 system_modules: "none",
322 java_version: "1.8",
323 compile_dex: true,
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000324 visibility: ["//visibility:public"],
Jihoon Kanga7073b52024-02-12 23:18:52 +0000325 is_stubs_module: true,
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000326}
327
328java_defaults {
Jihoon Kang491c7082023-06-15 18:37:01 +0000329 name: "android-non-updatable_defaults",
Anton Hanssonfbd32f32020-04-09 14:16:37 +0100330 sdk_version: "none",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900331 system_modules: "none",
332 java_version: "1.8",
333 compile_dex: true,
Jihoon Kanga7073b52024-02-12 23:18:52 +0000334 is_stubs_module: true,
Jihoon Kang491c7082023-06-15 18:37:01 +0000335}
336
337java_defaults {
338 name: "android-non-updatable_from_source_defaults",
339 libs: ["stub-annotations"],
340 static_libs: ["framework-res-package-jar"], // Export package of framework-res
Jihoon Kang059b9492023-12-29 00:40:34 +0000341}
342
343java_defaults {
344 name: "android-non-updatable_exportable_from_source_defaults",
Anton Hanssona4108912021-04-09 13:40:11 +0100345 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000346 targets: ["sdk"],
Anton Hanssona4108912021-04-09 13:40:11 +0100347 tag: ".jar",
348 dest: "android-non-updatable.jar",
Anton Hansson240ee482021-04-14 12:52:00 +0100349 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900350}
351
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100352java_library {
Anton Hanssona4748cd2021-04-09 10:16:19 +0100353 name: "android-non-updatable.stubs",
Jihoon Kang491c7082023-06-15 18:37:01 +0000354 defaults: ["android-non-updatable_defaults"],
355 static_libs: [
356 "android-non-updatable.stubs.from-source",
357 ],
358 product_variables: {
359 build_from_text_stub: {
360 static_libs: [
361 "android-non-updatable.stubs.from-text",
362 ],
363 exclude_static_libs: [
364 "android-non-updatable.stubs.from-source",
365 ],
366 },
367 },
368}
369
370java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000371 name: "android-non-updatable.stubs.exportable",
372 defaults: ["android-non-updatable_defaults"],
373 static_libs: [
374 "android-non-updatable.stubs.exportable.from-source",
375 ],
376}
377
378java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000379 name: "android-non-updatable.stubs.system",
380 defaults: ["android-non-updatable_defaults"],
381 static_libs: [
382 "android-non-updatable.stubs.system.from-source",
383 ],
384 product_variables: {
385 build_from_text_stub: {
386 static_libs: [
387 "android-non-updatable.stubs.system.from-text",
388 ],
389 exclude_static_libs: [
390 "android-non-updatable.stubs.system.from-source",
391 ],
392 },
393 },
394}
395
396java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000397 name: "android-non-updatable.stubs.exportable.system",
398 defaults: ["android-non-updatable_defaults"],
399 static_libs: [
400 "android-non-updatable.stubs.exportable.system.from-source",
401 ],
402}
403
404java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000405 name: "android-non-updatable.stubs.module_lib",
406 defaults: ["android-non-updatable_defaults"],
407 static_libs: [
408 "android-non-updatable.stubs.module_lib.from-source",
409 ],
410 product_variables: {
411 build_from_text_stub: {
412 static_libs: [
413 "android-non-updatable.stubs.module_lib.from-text",
414 ],
415 exclude_static_libs: [
416 "android-non-updatable.stubs.module_lib.from-source",
417 ],
418 },
419 },
420}
421
422java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000423 name: "android-non-updatable.stubs.exportable.module_lib",
424 defaults: ["android-non-updatable_defaults"],
425 static_libs: [
426 "android-non-updatable.stubs.exportable.module_lib.from-source",
427 ],
428}
429
430java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000431 name: "android-non-updatable.stubs.test",
432 defaults: ["android-non-updatable_defaults"],
433 static_libs: [
434 "android-non-updatable.stubs.test.from-source",
435 ],
436 product_variables: {
437 build_from_text_stub: {
438 static_libs: [
439 "android-non-updatable.stubs.test.from-text",
440 ],
441 exclude_static_libs: [
442 "android-non-updatable.stubs.test.from-source",
443 ],
444 },
445 },
446}
447
448java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000449 name: "android-non-updatable.stubs.exportable.test",
450 defaults: ["android-non-updatable_defaults"],
451 static_libs: [
452 "android-non-updatable.stubs.exportable.test.from-source",
453 ],
454}
455
456java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000457 name: "android-non-updatable.stubs.from-source",
458 defaults: [
459 "android-non-updatable_defaults",
460 "android-non-updatable_from_source_defaults",
461 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100462 srcs: [":api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000463 libs: ["all-modules-public-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000464}
465
466java_library {
467 name: "android-non-updatable.stubs.exportable.from-source",
468 defaults: [
469 "android-non-updatable_defaults",
470 "android-non-updatable_from_source_defaults",
471 "android-non-updatable_exportable_from_source_defaults",
472 ],
473 srcs: [":api-stubs-docs-non-updatable{.exportable}"],
474 libs: ["all-modules-public-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100475 dist: {
476 dir: "apistubs/android/public",
477 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100478}
479
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100480java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000481 name: "android-non-updatable.stubs.system.from-source",
482 defaults: [
483 "android-non-updatable_defaults",
484 "android-non-updatable_from_source_defaults",
485 ],
Anton Hansson240ee482021-04-14 12:52:00 +0100486 srcs: [":system-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000487 libs: ["all-modules-system-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000488}
489
490java_library {
491 name: "android-non-updatable.stubs.exportable.system.from-source",
492 defaults: [
493 "android-non-updatable_defaults",
494 "android-non-updatable_from_source_defaults",
495 "android-non-updatable_exportable_from_source_defaults",
496 ],
497 srcs: [":system-api-stubs-docs-non-updatable{.exportable}"],
498 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100499 dist: {
500 dir: "apistubs/android/system",
501 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100502}
503
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100504java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000505 name: "android-non-updatable.stubs.module_lib.from-source",
506 defaults: [
507 "android-non-updatable_defaults",
508 "android-non-updatable_from_source_defaults",
509 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100510 srcs: [":module-lib-api-stubs-docs-non-updatable"],
Anton Hansson648b0db2023-11-06 19:24:42 +0000511 libs: non_updatable_api_deps_on_modules,
Jihoon Kang059b9492023-12-29 00:40:34 +0000512}
513
514java_library {
515 name: "android-non-updatable.stubs.exportable.module_lib.from-source",
516 defaults: [
517 "android-non-updatable_defaults",
518 "android-non-updatable_from_source_defaults",
519 "android-non-updatable_exportable_from_source_defaults",
520 ],
521 srcs: [":module-lib-api-stubs-docs-non-updatable{.exportable}"],
522 libs: non_updatable_api_deps_on_modules,
Anton Hanssona4108912021-04-09 13:40:11 +0100523 dist: {
524 dir: "apistubs/android/module-lib",
525 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100526}
527
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100528java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000529 name: "android-non-updatable.stubs.test.from-source",
530 defaults: [
531 "android-non-updatable_defaults",
532 "android-non-updatable_from_source_defaults",
533 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100534 srcs: [":test-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000535 libs: ["all-modules-system-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000536}
537
538java_library {
539 name: "android-non-updatable.stubs.exportable.test.from-source",
540 defaults: [
541 "android-non-updatable_defaults",
542 "android-non-updatable_from_source_defaults",
543 "android-non-updatable_exportable_from_source_defaults",
544 ],
545 srcs: [":test-api-stubs-docs-non-updatable{.exportable}"],
546 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100547 dist: {
548 dir: "apistubs/android/test",
549 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100550}
551
552java_defaults {
Jihoon Kang491c7082023-06-15 18:37:01 +0000553 name: "android-non-updatable_from_text_defaults",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000554 static_libs: ["framework-res-package-jar"],
555 libs: ["stub-annotations"],
556}
557
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000558java_defaults {
559 name: "android-non-updatable_everything_from_text_defaults",
560 defaults: [
561 "android-non-updatable_from_text_defaults",
562 ],
563 stubs_type: "everything",
564}
565
Jihoon Kang0c101db2023-03-14 07:03:46 +0000566java_api_library {
567 name: "android-non-updatable.stubs.from-text",
568 api_surface: "public",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000569 api_contributions: [
570 "api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000571 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000572 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000573 full_api_surface_stub: "android_stubs_current.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000574}
575
576java_api_library {
577 name: "android-non-updatable.stubs.system.from-text",
578 api_surface: "system",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000579 api_contributions: [
580 "api-stubs-docs-non-updatable.api.contribution",
581 "system-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000582 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000583 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000584 full_api_surface_stub: "android_system_stubs_current.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000585}
586
587java_api_library {
588 name: "android-non-updatable.stubs.test.from-text",
589 api_surface: "test",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000590 api_contributions: [
591 "api-stubs-docs-non-updatable.api.contribution",
592 "system-api-stubs-docs-non-updatable.api.contribution",
593 "test-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000594 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000595 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000596 full_api_surface_stub: "android_test_stubs_current.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000597}
598
599java_api_library {
600 name: "android-non-updatable.stubs.module_lib.from-text",
601 api_surface: "module_lib",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000602 api_contributions: [
603 "api-stubs-docs-non-updatable.api.contribution",
604 "system-api-stubs-docs-non-updatable.api.contribution",
605 "module-lib-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000606 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000607 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000608 full_api_surface_stub: "android_module_lib_stubs_current_full.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000609}
610
Jihoon Kang4683b142023-10-05 23:42:51 +0000611// This module generates a stub jar that is a union of the test and module lib
612// non-updatable api contributions. Modules should not depend on the stub jar
613// generated from this module, as this module is strictly used for hiddenapi only.
614java_api_library {
615 name: "android-non-updatable.stubs.test_module_lib",
616 api_surface: "module_lib",
617 api_contributions: [
618 "api-stubs-docs-non-updatable.api.contribution",
619 "system-api-stubs-docs-non-updatable.api.contribution",
620 "test-api-stubs-docs-non-updatable.api.contribution",
621 "module-lib-api-stubs-docs-non-updatable.api.contribution",
622 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000623 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang4683b142023-10-05 23:42:51 +0000624 full_api_surface_stub: "android_test_module_lib_stubs_current.from-text",
625
626 // This module is only used for hiddenapi, and other modules should not
627 // depend on this module.
628 visibility: ["//visibility:private"],
629}
630
Jihoon Kang0c101db2023-03-14 07:03:46 +0000631java_defaults {
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000632 name: "android_stubs_dists_default",
633 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000634 targets: ["sdk"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000635 tag: ".jar",
636 dest: "android.jar",
637 },
Anton Hansson86925682021-04-14 14:54:43 +0100638 defaults_visibility: ["//frameworks/base/services"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000639}
640
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100641java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000642 name: "android_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000643 static_libs: [
644 "all-modules-public-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100645 "android-non-updatable.stubs",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100646 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100647 ],
Anton Hansson65057af2021-04-14 18:52:08 +0100648 defaults: ["android.jar_defaults"],
Jiyong Park7fb4b182019-12-20 14:35:43 +0900649}
650
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100651java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000652 name: "android_stubs_current_exportable.from-source",
653 static_libs: [
654 "all-modules-public-stubs-exportable",
655 "android-non-updatable.stubs.exportable",
656 "private-stub-annotations-jar",
657 ],
658 defaults: ["android.jar_defaults"],
659}
660
661java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000662 name: "android_system_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000663 static_libs: [
664 "all-modules-system-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100665 "android-non-updatable.stubs.system",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100666 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100667 ],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000668 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100669 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000670 ],
671 visibility: ["//frameworks/base/services"],
672}
673
674java_library {
675 name: "android_system_stubs_current_exportable.from-source",
676 static_libs: [
677 "all-modules-system-stubs-exportable",
678 "android-non-updatable.stubs.exportable.system",
679 "private-stub-annotations-jar",
680 ],
681 defaults: [
682 "android.jar_defaults",
Anton Hanssonc3002e52020-11-18 18:23:55 +0000683 "android_stubs_dists_default",
684 ],
685 dist: {
686 dir: "apistubs/android/system",
687 },
688 dists: [
689 {
690 // Legacy dist path
Anton Hanssondd8ef672022-01-04 08:53:19 +0000691 targets: ["sdk"],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000692 tag: ".jar",
693 dest: "android_system.jar",
694 },
695 ],
Anton Hansson76d3db42020-04-09 14:16:37 +0100696}
697
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100698java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000699 name: "android_test_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000700 static_libs: [
Nikita Ioffe5593fbb2022-12-01 14:52:34 +0000701 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
702 // include the SystemApi of framework-non-updatable-sources.
703 "all-updatable-modules-system-stubs",
704 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
705 "all-non-updatable-modules-test-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100706 "android-non-updatable.stubs.test",
Anton Hansson7ce31c12020-10-15 18:38:49 +0100707 "private-stub-annotations-jar",
708 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000709 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100710 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000711 ],
712 visibility: ["//frameworks/base/services"],
713}
714
715java_library {
716 name: "android_test_stubs_current_exportable.from-source",
717 static_libs: [
718 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
719 // include the SystemApi of framework-non-updatable-sources.
720 "all-updatable-modules-system-stubs-exportable",
721 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
722 "all-non-updatable-modules-test-stubs-exportable",
723 "android-non-updatable.stubs.exportable.test",
724 "private-stub-annotations-jar",
725 ],
726 defaults: [
727 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000728 "android_stubs_dists_default",
729 ],
730 dist: {
731 dir: "apistubs/android/test",
732 },
Jiyong Parke3095162019-12-20 15:30:28 +0900733}
734
Jihoon Kang059b9492023-12-29 00:40:34 +0000735// This module does not need to be copied to dist
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100736java_library {
Mark Whitee35b1382023-08-12 01:31:26 +0000737 name: "android_test_frameworks_core_stubs_current.from-source",
738 static_libs: [
739 "all-updatable-modules-system-stubs",
740 "android-non-updatable.stubs.test",
Mark Whitee35b1382023-08-12 01:31:26 +0000741 ],
742 defaults: [
743 "android.jar_defaults",
Mark Whitee35b1382023-08-12 01:31:26 +0000744 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000745 visibility: ["//frameworks/base/services"],
Mark Whitee35b1382023-08-12 01:31:26 +0000746}
747
748java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000749 name: "android_module_lib_stubs_current.from-source",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000750 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100751 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000752 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100753 static_libs: [
754 "android-non-updatable.stubs.module_lib",
Victor Chang6b107a92021-06-17 23:49:42 +0100755 "art.module.public.api.stubs.module_lib",
Giulio Fiscella68a04112021-11-30 16:32:44 +0000756 "i18n.module.public.api.stubs",
Anton Hanssonb7d532e2021-02-05 11:40:25 +0000757 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000758 visibility: ["//frameworks/base/services"],
759}
760
761java_library {
762 name: "android_module_lib_stubs_current_exportable.from-source",
763 defaults: [
764 "android.jar_defaults",
765 "android_stubs_dists_default",
766 ],
767 static_libs: [
768 "android-non-updatable.stubs.exportable.module_lib",
769 "art.module.public.api.stubs.exportable.module_lib",
770 "i18n.module.public.api.stubs.exportable",
771 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000772 dist: {
773 dir: "apistubs/android/module-lib",
774 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900775}
776
Andrei Oneafaa271a2021-03-17 13:32:51 +0000777java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000778 name: "android_system_server_stubs_current.from-source",
Anton Hansson21fb1082023-03-03 16:22:42 +0000779 defaults: [
780 "android.jar_defaults",
Anton Hansson21fb1082023-03-03 16:22:42 +0000781 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000782 srcs: [":services-non-updatable-stubs"],
783 installable: false,
784 static_libs: [
Jihoon Kang1453baa2023-05-27 05:32:30 +0000785 "android_module_lib_stubs_current.from-source",
Andrei Oneafaa271a2021-03-17 13:32:51 +0000786 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000787 visibility: ["//frameworks/base/services"],
788}
789
790java_library {
791 name: "android_system_server_stubs_current_exportable.from-source",
792 defaults: [
793 "android.jar_defaults",
794 "android_stubs_dists_default",
795 ],
796 srcs: [":services-non-updatable-stubs{.exportable}"],
797 installable: false,
798 static_libs: [
799 "android_module_lib_stubs_current_exportable.from-source",
800 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000801 dist: {
802 dir: "apistubs/android/system-server",
803 },
804}
805
Colin Crosscf87a572022-10-20 14:06:53 -0700806java_library {
807 name: "android_stubs_private_jar",
808 defaults: ["android.jar_defaults"],
809 visibility: [
810 "//visibility:override",
811 "//visibility:private",
812 ],
813 static_libs: [
814 "stable.core.platform.api.stubs",
815 "core-lambda-stubs-for-system-modules",
816 "core-generated-annotation-stubs",
817 "framework",
818 "ext",
819 "framework-res-package-jar",
820 // The order of this matters, it has to be last to provide a
821 // package-private androidx.annotation.RecentlyNonNull without
822 // overriding the public android.annotation.Nullable in framework.jar
823 // with its own package-private android.annotation.Nullable.
824 "private-stub-annotations-jar",
825 ],
Jihoon Kanga7073b52024-02-12 23:18:52 +0000826 is_stubs_module: true,
Colin Crosscf87a572022-10-20 14:06:53 -0700827}
828
829java_genrule {
830 name: "android_stubs_private_hjar",
Colin Crosscf87a572022-10-20 14:06:53 -0700831 srcs: [":android_stubs_private_jar{.hjar}"],
832 out: ["android_stubs_private.jar"],
833 cmd: "cp $(in) $(out)",
834}
835
836java_library {
837 name: "android_stubs_private",
838 defaults: ["android_stubs_dists_default"],
Colin Crosscf87a572022-10-20 14:06:53 -0700839 sdk_version: "none",
840 system_modules: "none",
841 static_libs: ["android_stubs_private_hjar"],
842 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000843 // Add to private_api_stubs dist target for easier packaging by scripts. This module is
844 // useful for creating a platform SDK, which can be packaged in ANDROID_HOME and used from
845 // Gradle, allowing for development of platform apps that make use of hidden APIs.
846 targets: ["private_api_stubs"],
Colin Crosscf87a572022-10-20 14:06:53 -0700847 dir: "apistubs/android/private",
848 },
849}
850
851java_genrule {
852 name: "android_stubs_private_framework_aidl",
Colin Crosscf87a572022-10-20 14:06:53 -0700853 tools: ["sdkparcelables"],
854 srcs: [":android_stubs_private"],
855 out: ["framework.aidl"],
856 cmd: "rm -f $(genDir)/framework.aidl.merged && " +
857 "for i in $(in); do " +
858 " rm -f $(genDir)/framework.aidl.tmp && " +
859 " $(location sdkparcelables) $$i $(genDir)/framework.aidl.tmp && " +
860 " cat $(genDir)/framework.aidl.tmp >> $(genDir)/framework.aidl.merged; " +
861 "done && " +
862 "sort -u $(genDir)/framework.aidl.merged > $(out)",
863 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000864 targets: [
865 "sdk",
866 // Add to private_api_stubs dist target for easier packaging by scripts.
867 // See explanation in the "android_stubs_private" module above.
868 "private_api_stubs",
869 ],
Colin Crosscf87a572022-10-20 14:06:53 -0700870 dir: "apistubs/android/private",
871 },
872}
873
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000874//
875// Java API defaults and libraries for single tree build
876//
877
878java_defaults {
879 name: "stub-annotation-defaults",
880 libs: [
881 "stub-annotations",
882 ],
883 static_libs: [
884 // stub annotations do not contribute to the API surfaces but are statically
885 // linked in the stubs for API surfaces (see frameworks/base/StubLibraries.bp).
886 // This is because annotation processors insist on loading the classes for any
887 // annotations found, thus should exist inside android.jar.
888 "private-stub-annotations-jar",
889 ],
Jihoon Kanga7073b52024-02-12 23:18:52 +0000890 is_stubs_module: true,
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000891}
892
893// Listing of API domains contribution and dependencies per API surfaces
894java_defaults {
895 name: "android_test_stubs_current_contributions",
896 api_surface: "test",
897 api_contributions: [
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000898 "framework-virtualization.stubs.source.test.api.contribution",
Mark White3cc5e002023-08-07 11:18:09 +0000899 "framework-location.stubs.source.test.api.contribution",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000900 ],
901}
902
903java_defaults {
904 name: "android_test_frameworks_core_stubs_current_contributions",
905 api_surface: "test",
906 api_contributions: [
907 "test-api-stubs-docs-non-updatable.api.contribution",
908 ],
909}
910
911java_defaults {
912 name: "android_module_lib_stubs_current_contributions",
913 api_surface: "module-lib",
914 api_contributions: [
915 "api-stubs-docs-non-updatable.api.contribution",
916 "system-api-stubs-docs-non-updatable.api.contribution",
917 "module-lib-api-stubs-docs-non-updatable.api.contribution",
918 "art.module.public.api.stubs.source.api.contribution",
919 "art.module.public.api.stubs.source.system.api.contribution",
920 "art.module.public.api.stubs.source.module_lib.api.contribution",
921 "i18n.module.public.api.stubs.source.api.contribution",
922 "i18n.module.public.api.stubs.source.system.api.contribution",
923 "i18n.module.public.api.stubs.source.module_lib.api.contribution",
924 ],
Jihoon Kangb41457b2024-06-17 20:24:46 +0000925 previous_api: ":android.api.public.latest",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000926}
927
928// Java API library definitions per API surface
929java_api_library {
930 name: "android_stubs_current.from-text",
931 api_surface: "public",
932 defaults: [
933 // This module is dynamically created at frameworks/base/api/api.go
934 // instead of being written out, in order to minimize edits in the codebase
935 // when there is a change in the list of modules.
936 // that contributes to an api surface.
937 "android_stubs_current_contributions",
938 "stub-annotation-defaults",
939 ],
940 api_contributions: [
941 "api-stubs-docs-non-updatable.api.contribution",
942 ],
943 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000944 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000945 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000946}
947
948java_api_library {
949 name: "android_system_stubs_current.from-text",
950 api_surface: "system",
951 defaults: [
952 "android_stubs_current_contributions",
953 "android_system_stubs_current_contributions",
954 "stub-annotation-defaults",
955 ],
956 api_contributions: [
957 "api-stubs-docs-non-updatable.api.contribution",
958 "system-api-stubs-docs-non-updatable.api.contribution",
959 ],
960 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000961 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000962 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000963}
964
965java_api_library {
966 name: "android_test_stubs_current.from-text",
967 api_surface: "test",
968 defaults: [
969 "android_stubs_current_contributions",
970 "android_system_stubs_current_contributions",
971 "android_test_stubs_current_contributions",
972 "stub-annotation-defaults",
973 ],
974 api_contributions: [
975 "api-stubs-docs-non-updatable.api.contribution",
976 "system-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang1c5022b2023-09-20 22:02:29 +0000977 "test-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000978 ],
979 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000980 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000981 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000982}
983
984java_api_library {
985 name: "android_test_frameworks_core_stubs_current.from-text",
986 api_surface: "test",
987 defaults: [
988 "android_stubs_current_contributions",
989 "android_system_stubs_current_contributions",
990 "android_test_frameworks_core_stubs_current_contributions",
Jihoon Kangbeeb35a2023-10-17 22:22:24 +0000991 ],
992 libs: [
993 "stub-annotations",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000994 ],
995 api_contributions: [
996 "api-stubs-docs-non-updatable.api.contribution",
997 "system-api-stubs-docs-non-updatable.api.contribution",
998 ],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000999 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001000 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001001}
1002
1003java_api_library {
1004 name: "android_module_lib_stubs_current_full.from-text",
1005 api_surface: "module-lib",
1006 defaults: [
1007 "android_stubs_current_contributions",
1008 "android_system_stubs_current_contributions",
1009 "android_module_lib_stubs_current_contributions_full",
1010 ],
1011 libs: [
1012 "stub-annotations",
1013 ],
1014 api_contributions: [
1015 "api-stubs-docs-non-updatable.api.contribution",
1016 "system-api-stubs-docs-non-updatable.api.contribution",
1017 "module-lib-api-stubs-docs-non-updatable.api.contribution",
1018 ],
1019 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001020 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001021 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001022}
1023
1024java_api_library {
1025 name: "android_module_lib_stubs_current.from-text",
1026 api_surface: "module-lib",
1027 defaults: [
1028 "android_module_lib_stubs_current_contributions",
1029 ],
1030 libs: [
1031 "android_module_lib_stubs_current_full.from-text",
1032 "stub-annotations",
1033 ],
1034 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001035 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001036 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001037}
1038
1039java_api_library {
Jihoon Kang4683b142023-10-05 23:42:51 +00001040 name: "android_test_module_lib_stubs_current.from-text",
1041 api_surface: "module-lib",
1042 defaults: [
1043 "android_stubs_current_contributions",
1044 "android_system_stubs_current_contributions",
1045 "android_test_stubs_current_contributions",
1046 "android_module_lib_stubs_current_contributions",
1047 ],
1048 libs: [
1049 "android_module_lib_stubs_current_full.from-text",
1050 "stub-annotations",
1051 ],
1052 api_contributions: [
1053 "test-api-stubs-docs-non-updatable.api.contribution",
1054 ],
1055
1056 // This module is only used to build android-non-updatable.stubs.test_module_lib
1057 // and other modules should not depend on this module.
1058 visibility: [
1059 "//visibility:private",
1060 ],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001061 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001062 stubs_type: "everything",
Jihoon Kang4683b142023-10-05 23:42:51 +00001063}
1064
1065java_api_library {
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001066 name: "android_system_server_stubs_current.from-text",
1067 api_surface: "system-server",
1068 api_contributions: [
1069 "services-non-updatable-stubs.api.contribution",
1070 ],
1071 libs: [
1072 "android_module_lib_stubs_current.from-text",
1073 "stub-annotations",
1074 ],
1075 static_libs: [
1076 "android_module_lib_stubs_current.from-text",
1077 ],
1078 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001079 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001080 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001081}
1082
Anton Hansson36bc27c2021-09-14 15:45:13 +01001083////////////////////////////////////////////////////////////////////////
1084// api-versions.xml generation, for public and system. This API database
1085// also contains the android.test.* APIs.
1086////////////////////////////////////////////////////////////////////////
1087
1088java_library {
1089 name: "android_stubs_current_with_test_libs",
1090 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001091 "android_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +01001092 "android.test.base.stubs",
1093 "android.test.mock.stubs",
1094 "android.test.runner.stubs",
1095 ],
1096 defaults: ["android.jar_defaults"],
1097 visibility: [
1098 "//visibility:override",
1099 "//visibility:private",
1100 ],
1101}
1102
1103java_library {
1104 name: "android_system_stubs_current_with_test_libs",
1105 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001106 "android_system_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +01001107 "android.test.base.stubs.system",
1108 "android.test.mock.stubs.system",
1109 "android.test.runner.stubs.system",
1110 ],
1111 defaults: ["android.jar_defaults"],
1112 visibility: [
1113 "//visibility:override",
1114 "//visibility:private",
1115 ],
1116}
1117
Cole Faustdcda3702022-10-04 14:46:35 -07001118java_library {
1119 name: "android_module_stubs_current_with_test_libs",
1120 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001121 "android_module_lib_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -07001122 "android.test.base.stubs",
1123 "android.test.mock.stubs",
1124 "android.test.runner.stubs",
1125 ],
1126 defaults: ["android.jar_defaults"],
1127 visibility: [
1128 "//visibility:override",
1129 "//visibility:private",
1130 ],
1131}
1132
1133java_library {
1134 name: "android_system_server_stubs_current_with_test_libs",
1135 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001136 "android_system_server_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -07001137 "android.test.base.stubs.system",
1138 "android.test.mock.stubs.system",
1139 "android.test.runner.stubs.system",
1140 ],
1141 defaults: ["android.jar_defaults"],
1142 visibility: [
1143 "//visibility:override",
1144 "//visibility:private",
1145 ],
1146}
1147
Paul Duffin0834ea72024-05-02 12:09:51 +01001148// Defaults for `droidstubs` modules that generate `api-versions.xml` files for
1149// the various API surfaces.
1150stubs_defaults {
1151 name: "api_versions_base_defaults",
1152 defaults_visibility: ["//visibility:private"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001153 generate_stubs: false,
1154 api_levels_annotations_enabled: true,
1155 api_levels_annotations_dirs: [
1156 "sdk-dir",
1157 "api-versions-jars-dir",
1158 ],
Paul Duffin0834ea72024-05-02 12:09:51 +01001159}
1160
1161// Defaults for `droidstubs` modules that generate complete `api-versions.xml`
1162// files, i.e. include SDK extensions.
1163stubs_defaults {
1164 name: "api_versions_complete_defaults",
1165 defaults_visibility: ["//visibility:private"],
1166 defaults: ["api_versions_base_defaults"],
MÃ¥rten Kongstad54845332022-09-06 15:50:37 +02001167 extensions_info_file: ":sdk-extensions-info",
Paul Duffin0834ea72024-05-02 12:09:51 +01001168}
1169
1170// Produces an `api-versions.xml` file that includes up-to-date information
1171// about all the public APIs, both updatable and non-updatable and historic
1172// information about all previous dessert and SDK extension releases.
1173droidstubs {
1174 name: "api_versions_public",
1175 defaults: ["api_versions_complete_defaults"],
1176 srcs: [":android_stubs_current_with_test_libs{.jar}"],
1177 api_levels_sdk_type: "public",
Anton Hanssonca6e67a2023-03-03 17:55:09 +00001178 visibility: ["//frameworks/base"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001179}
1180
Paul Duffin0834ea72024-05-02 12:09:51 +01001181// Produces an `api-versions.xml` file that includes up-to-date information
1182// about all the system APIs, both updatable and non-updatable and historic
1183// information about all previous dessert and SDK extension releases.
Anton Hansson36bc27c2021-09-14 15:45:13 +01001184droidstubs {
1185 name: "api_versions_system",
Paul Duffin0834ea72024-05-02 12:09:51 +01001186 defaults: ["api_versions_complete_defaults"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001187 srcs: [":android_system_stubs_current_with_test_libs{.jar}"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001188 api_levels_sdk_type: "system",
Paul Duffin75f63602024-01-05 18:15:59 +00001189 dists: [
1190 // Make the api-versions.xml file for the system API available in the
1191 // sdk build target.
1192 {
1193 targets: ["sdk"],
1194 dest: "api-versions_system.xml",
1195 tag: ".api_versions.xml",
1196 },
1197 ],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001198}
1199
Paul Duffin0834ea72024-05-02 12:09:51 +01001200// Defaults for `droidstubs` modules that generate `api-versions.xml` files that
1201// only include non-updatable code, i.e. for platform API only, not SDK
1202// extensions.
1203stubs_defaults {
1204 name: "api_versions_non_updatable_defaults",
1205 defaults_visibility: ["//visibility:private"],
1206 defaults: ["api_versions_base_defaults"],
Cole Faustbf4ce752023-02-08 12:46:06 -08001207 // this only has the non-updatable portions of the module lib sdk,
1208 // which can reference classes from updatable apexes, so remove references to them
1209 // from this api_versions file.
1210 flags: ["--remove-missing-class-references-in-api-levels"],
Cole Faust1deced12023-02-15 13:24:18 -08001211 // extensions_info_file is purposefully omitted, because this module should just be
1212 // the non-updatable portions of the sdk, and extension sdks are updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001213}
1214
Paul Duffin0834ea72024-05-02 12:09:51 +01001215// Produces an `api-versions.xml` file that includes up-to-date information
1216// about only the non-updatable module-lib APIs and historic information about
1217// all previous dessert and SDK extension releases. That historic information
1218// may include information about APIs that were previously not-updatable which
1219// have since become updatable.
1220droidstubs {
1221 name: "api_versions_module_lib",
1222 defaults: ["api_versions_non_updatable_defaults"],
1223 srcs: [":android_module_stubs_current_with_test_libs{.jar}"],
1224 api_levels_sdk_type: "module-lib",
1225}
1226
Paul Duffinfb5e07d2024-05-02 14:51:41 +01001227// Create a single jar containing the whole module-lib API surface.
1228// This is needed because Metalava only consumes the first jar file it is given
1229// and ignores the rest.
1230java_library {
1231 name: "android_module_stubs_complete_current_with_test_libs",
1232 static_libs: [
1233 "android_module_stubs_current_with_test_libs",
1234 "framework-updatable-stubs-module_libs_api-exportable",
1235 ],
1236 defaults: ["android.jar_defaults"],
1237 visibility: [
1238 "//visibility:override",
1239 "//visibility:private",
1240 ],
1241}
1242
1243// Produces an `api-versions.xml` file that includes up-to-date information
1244// about all the module-lib APIs, both updatable and non-updatable and historic
1245// information about all previous dessert and SDK extension releases.
1246droidstubs {
1247 name: "api_versions_module_lib_complete",
1248 defaults: ["api_versions_complete_defaults"],
1249 srcs: [":android_module_stubs_complete_current_with_test_libs{.jar}"],
1250 api_levels_sdk_type: "module-lib",
1251}
1252
Paul Duffin0834ea72024-05-02 12:09:51 +01001253// Produces an `api-versions.xml` file that includes up-to-date information
1254// about only the non-updatable system-server APIs and historic information
1255// about all previous dessert and SDK extension releases. That historic
1256// information may include information about APIs that were previously
1257// not-updatable which have since become updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001258droidstubs {
1259 name: "api_versions_system_server",
Paul Duffin0834ea72024-05-02 12:09:51 +01001260 defaults: ["api_versions_non_updatable_defaults"],
Cole Faustdcda3702022-10-04 14:46:35 -07001261 srcs: [":android_system_server_stubs_current_with_test_libs{.jar}"],
Cole Faustdcda3702022-10-04 14:46:35 -07001262 api_levels_sdk_type: "system-server",
Cole Faustdcda3702022-10-04 14:46:35 -07001263}
1264
Paul Duffinfb5e07d2024-05-02 14:51:41 +01001265// Create a single jar containing the whole system-server API surface.
1266// This is needed because Metalava only consumes the first jar file it is given
1267// and ignores the rest.
1268java_library {
1269 name: "android_system_server_stubs_complete_current_with_test_libs",
1270 static_libs: [
1271 "android_system_server_stubs_current_with_test_libs",
1272 // system-server extends module-lib but libraries which only service-*
1273 // libraries provided system-server APIs, so include module-lib APIs for
1274 // the others, e.g. framework-* libraries.
1275 "framework-updatable-stubs-module_libs_api-exportable",
1276 "framework-updatable-stubs-system_server_api-exportable",
1277 ],
1278 defaults: ["android.jar_defaults"],
1279 visibility: [
1280 "//visibility:override",
1281 "//visibility:private",
1282 ],
1283}
1284
1285// Produces an `api-versions.xml` file that includes up-to-date information
1286// about all the system-server APIs, both updatable and non-updatable and
1287// historic information about all previous dessert and SDK extension releases.
1288droidstubs {
1289 name: "api_versions_system_server_complete",
1290 defaults: ["api_versions_complete_defaults"],
1291 srcs: [":android_system_server_stubs_complete_current_with_test_libs{.jar}"],
1292 api_levels_sdk_type: "system-server",
1293}
1294
Jiyong Park7fb4b182019-12-20 14:35:43 +09001295/////////////////////////////////////////////////////////////////////
1296// hwbinder.stubs provides APIs required for building HIDL Java
1297// libraries.
1298/////////////////////////////////////////////////////////////////////
1299
1300droidstubs {
1301 name: "hwbinder-stubs-docs",
Anton Hansson23f319f2023-03-03 16:04:02 +00001302 srcs: [":hwbinder-stubs-srcs"],
Colin Cross037d7fb2021-03-25 17:01:55 -07001303 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001304 installable: false,
1305 sdk_version: "core_platform",
1306 annotations_enabled: true,
Anton Hansson48ee95e2020-05-02 17:49:26 +01001307 previous_api: ":android.api.public.latest",
Jiyong Park7fb4b182019-12-20 14:35:43 +09001308 merge_annotations_dirs: [
1309 "metalava-manual",
1310 ],
Anton Hansson84a0e712023-10-23 09:17:45 +00001311 flags: priv_apps,
Jiyong Park7fb4b182019-12-20 14:35:43 +09001312}
1313
Anton Hanssonbbdd64b2021-04-26 18:47:39 +01001314java_library {
Jiyong Park7fb4b182019-12-20 14:35:43 +09001315 name: "hwbinder.stubs",
1316 sdk_version: "core_current",
Colin Cross037d7fb2021-03-25 17:01:55 -07001317 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001318 srcs: [
1319 ":hwbinder-stubs-docs",
1320 ],
Anton Hansson86925682021-04-14 14:54:43 +01001321 visibility: ["//visibility:public"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001322}