blob: b3a674fbd70e2d86ec3d44f1bbf62e801cbb7f28 [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 ],
Paul Duffina2c4cd72024-06-18 18:49:48 +010041 // Use full Android API not just the non-updatable API as the latter is incomplete
42 // and can result in incorrect behavior.
43 previous_api: ":android.api.combined.public.latest",
Anton Hansson76d3db42020-04-09 14:16:37 +010044 check_api: {
45 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +000046 api_file: ":non-updatable-current.txt",
47 removed_api_file: ":non-updatable-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +010048 },
Anton Hansson37e102e2020-10-05 16:42:40 +010049 last_released: {
Paul Duffinf75e9102024-05-20 16:20:39 +010050 api_file: ":android-non-updatable.api.combined.public.latest",
51 removed_api_file: ":android-non-updatable-removed.api.combined.public.latest",
Anton Hansson7f3393d2021-04-12 11:56:53 +010052 baseline_file: ":android-non-updatable-incompatibilities.api.public.latest",
Anton Hansson37e102e2020-10-05 16:42:40 +010053 },
Anton Hansson76d3db42020-04-09 14:16:37 +010054 api_lint: {
55 enabled: true,
Paul Duffin98bc0112024-05-17 14:21:44 +010056 new_since: ":android.api.combined.public.latest",
Adrian Roos440f3cf2023-09-20 10:03:31 +000057 baseline_file: ":non-updatable-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +010058 },
59 },
Jihoon Kang2d295ae2024-03-21 23:57:14 +000060 soong_config_variables: {
61 release_hidden_api_exportable_stubs: {
62 dists: [
63 {
Jihoon Kang00f480e2024-04-10 18:55:36 +000064 targets: ["sdk"],
65 dir: "apistubs/android/public/api",
66 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +000067 tag: ".exportable.api.txt",
68 },
69 {
Jihoon Kang00f480e2024-04-10 18:55:36 +000070 targets: ["sdk"],
71 dir: "apistubs/android/public/api",
72 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +000073 tag: ".exportable.removed-api.txt",
74 },
75 ],
76 conditions_default: {
77 dists: [
78 {
Jihoon Kang00f480e2024-04-10 18:55:36 +000079 targets: ["sdk"],
80 dir: "apistubs/android/public/api",
81 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +000082 tag: ".api.txt",
83 },
84 {
Jihoon Kang00f480e2024-04-10 18:55:36 +000085 targets: ["sdk"],
86 dir: "apistubs/android/public/api",
87 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +000088 tag: ".removed-api.txt",
89 },
90 ],
91 },
92 },
93 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +000094 api_surface: "public",
Anton Hansson76d3db42020-04-09 14:16:37 +010095}
96
Anton Hansson84a0e712023-10-23 09:17:45 +000097priv_apps = [
98 "--show-annotation android.annotation.SystemApi\\(" +
99 "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
100 "\\)",
101]
Anton Hansson2feb3f12020-11-13 11:44:32 +0000102
Anton Hansson84a0e712023-10-23 09:17:45 +0000103priv_apps_in_stubs = [
104 "--show-for-stub-purposes-annotation android.annotation.SystemApi\\(" +
105 "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
106 "\\)",
107]
Anton Hansson2feb3f12020-11-13 11:44:32 +0000108
Anton Hansson84a0e712023-10-23 09:17:45 +0000109test = ["--show-annotation android.annotation.TestApi"]
Anton Hansson2feb3f12020-11-13 11:44:32 +0000110
Anton Hansson84a0e712023-10-23 09:17:45 +0000111module_libs = [
112 "--show-annotation android.annotation.SystemApi\\(" +
113 "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES" +
114 "\\)",
115]
Anton Hansson81969c22020-02-03 20:45:56 +0000116
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000117non_updatable_exportable_droidstubs {
Anton Hansson76d3db42020-04-09 14:16:37 +0100118 name: "system-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000119 defaults: [
120 "android-non-updatable-stubs-defaults",
121 "module-classpath-stubs-defaults",
122 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000123 flags: priv_apps,
Paul Duffina2c4cd72024-06-18 18:49:48 +0100124 // Use full Android API not just the non-updatable API as the latter is incomplete
125 // and can result in incorrect behavior.
126 previous_api: ":android.api.combined.system.latest",
Anton Hansson76d3db42020-04-09 14:16:37 +0100127 check_api: {
128 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000129 api_file: ":non-updatable-system-current.txt",
130 removed_api_file: ":non-updatable-system-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100131 },
Anton Hansson37e102e2020-10-05 16:42:40 +0100132 last_released: {
Paul Duffinf75e9102024-05-20 16:20:39 +0100133 api_file: ":android-non-updatable.api.combined.system.latest",
134 removed_api_file: ":android-non-updatable-removed.api.combined.system.latest",
Anton Hansson240ee482021-04-14 12:52:00 +0100135 baseline_file: ":android-non-updatable-incompatibilities.api.system.latest",
Anton Hansson37e102e2020-10-05 16:42:40 +0100136 },
Anton Hansson76d3db42020-04-09 14:16:37 +0100137 api_lint: {
138 enabled: true,
Paul Duffin98bc0112024-05-17 14:21:44 +0100139 new_since: ":android.api.combined.system.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000140 baseline_file: ":non-updatable-system-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100141 },
142 },
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000143 soong_config_variables: {
144 release_hidden_api_exportable_stubs: {
145 dists: [
146 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000147 targets: ["sdk"],
148 dir: "apistubs/android/system/api",
149 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000150 tag: ".exportable.api.txt",
151 },
152 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000153 targets: ["sdk"],
154 dir: "apistubs/android/system/api",
155 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000156 tag: ".exportable.removed-api.txt",
157 },
158 ],
159 conditions_default: {
160 dists: [
161 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000162 targets: ["sdk"],
163 dir: "apistubs/android/system/api",
164 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000165 tag: ".api.txt",
166 },
167 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000168 targets: ["sdk"],
169 dir: "apistubs/android/system/api",
170 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000171 tag: ".removed-api.txt",
172 },
173 ],
174 },
175 },
176 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000177 api_surface: "system",
Anton Hansson76d3db42020-04-09 14:16:37 +0100178}
179
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000180non_updatable_exportable_droidstubs {
Anton Hansson022aac52020-11-05 10:45:13 +0000181 name: "test-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000182 defaults: [
183 "android-non-updatable-stubs-defaults",
184 "module-classpath-stubs-defaults",
185 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000186 flags: test + priv_apps_in_stubs,
Paul Duffina2c4cd72024-06-18 18:49:48 +0100187 // Use full Android API not just the non-updatable API as the latter is incomplete
188 // and can result in incorrect behavior.
189 previous_api: ":android.api.combined.test.latest",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900190 check_api: {
191 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000192 api_file: ":non-updatable-test-current.txt",
193 removed_api_file: ":non-updatable-test-removed.txt",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900194 },
195 api_lint: {
196 enabled: true,
Paul Duffin98bc0112024-05-17 14:21:44 +0100197 new_since: ":android.api.combined.test.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000198 baseline_file: ":non-updatable-test-lint-baseline.txt",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900199 },
200 },
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000201 soong_config_variables: {
202 release_hidden_api_exportable_stubs: {
203 dists: [
204 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000205 targets: ["sdk"],
206 dir: "apistubs/android/test/api",
207 dest: "android.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000208 tag: ".exportable.api.txt",
209 },
210 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000211 targets: ["sdk"],
212 dir: "apistubs/android/test/api",
213 dest: "removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000214 tag: ".exportable.removed-api.txt",
215 },
216 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000217 targets: ["sdk"],
218 dir: "apistubs/android/test/api",
219 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000220 tag: ".exportable.api.txt",
221 },
222 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000223 targets: ["sdk"],
224 dir: "apistubs/android/test/api",
225 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000226 tag: ".exportable.removed-api.txt",
227 },
228 ],
229 conditions_default: {
230 dists: [
231 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000232 targets: ["sdk"],
233 dir: "apistubs/android/test/api",
234 dest: "android.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000235 tag: ".api.txt",
236 },
237 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000238 targets: ["sdk"],
239 dir: "apistubs/android/test/api",
240 dest: "removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000241 tag: ".removed-api.txt",
242 },
243 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000244 targets: ["sdk"],
245 dir: "apistubs/android/test/api",
246 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000247 tag: ".api.txt",
248 },
249 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000250 targets: ["sdk"],
251 dir: "apistubs/android/test/api",
252 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000253 tag: ".removed-api.txt",
254 },
255 ],
256 },
257 },
258 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000259 api_surface: "test",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900260}
261
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000262non_updatable_exportable_droidstubs {
Anton Hansson76d3db42020-04-09 14:16:37 +0100263 name: "module-lib-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000264 defaults: [
265 "android-non-updatable-stubs-defaults",
266 "module-classpath-stubs-defaults",
267 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000268 flags: priv_apps_in_stubs + module_libs,
Paul Duffina2c4cd72024-06-18 18:49:48 +0100269 // Use full Android API not just the non-updatable API as the latter is incomplete
270 // and can result in incorrect behavior.
271 previous_api: ":android.api.combined.module-lib.latest",
Anton Hansson76d3db42020-04-09 14:16:37 +0100272 check_api: {
273 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000274 api_file: ":non-updatable-module-lib-current.txt",
275 removed_api_file: ":non-updatable-module-lib-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100276 },
Anton Hanssonc3ef1f562020-10-07 14:55:36 +0100277 last_released: {
Paul Duffinf75e9102024-05-20 16:20:39 +0100278 api_file: ":android-non-updatable.api.combined.module-lib.latest",
279 removed_api_file: ":android-non-updatable-removed.api.combined.module-lib.latest",
Junyu Lai2dbb1772022-01-12 17:38:02 +0000280 baseline_file: ":android-non-updatable-incompatibilities.api.module-lib.latest",
Anton Hanssonc3ef1f562020-10-07 14:55:36 +0100281 },
Anton Hansson76d3db42020-04-09 14:16:37 +0100282 api_lint: {
283 enabled: true,
Paul Duffin98bc0112024-05-17 14:21:44 +0100284 new_since: ":android.api.combined.module-lib.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000285 baseline_file: ":non-updatable-module-lib-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100286 },
287 },
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000288 soong_config_variables: {
289 release_hidden_api_exportable_stubs: {
290 dists: [
291 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000292 targets: ["sdk"],
293 dir: "apistubs/android/module-lib/api",
294 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000295 tag: ".exportable.api.txt",
296 },
297 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000298 targets: ["sdk"],
299 dir: "apistubs/android/module-lib/api",
300 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000301 tag: ".exportable.removed-api.txt",
302 },
303 ],
304 conditions_default: {
305 dists: [
306 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000307 targets: ["sdk"],
308 dir: "apistubs/android/module-lib/api",
309 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000310 tag: ".api.txt",
311 },
312 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000313 targets: ["sdk"],
314 dir: "apistubs/android/module-lib/api",
315 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000316 tag: ".removed-api.txt",
317 },
318 ],
319 },
320 },
321 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000322 api_surface: "module-lib",
Anton Hansson76d3db42020-04-09 14:16:37 +0100323}
Anton Hansson81969c22020-02-03 20:45:56 +0000324
Jiyong Parke3095162019-12-20 15:30:28 +0900325/////////////////////////////////////////////////////////////////////
Jiyong Park7fb4b182019-12-20 14:35:43 +0900326// android_*_stubs_current modules are the stubs libraries compiled
Anton Hansson2feb3f12020-11-13 11:44:32 +0000327// from stub sources
Jiyong Park7fb4b182019-12-20 14:35:43 +0900328/////////////////////////////////////////////////////////////////////
329
330java_defaults {
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000331 name: "android.jar_defaults",
332 sdk_version: "none",
333 system_modules: "none",
334 java_version: "1.8",
335 compile_dex: true,
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000336 visibility: ["//visibility:public"],
Jihoon Kanga7073b52024-02-12 23:18:52 +0000337 is_stubs_module: true,
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000338}
339
340java_defaults {
Jihoon Kang491c7082023-06-15 18:37:01 +0000341 name: "android-non-updatable_defaults",
Anton Hanssonfbd32f32020-04-09 14:16:37 +0100342 sdk_version: "none",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900343 system_modules: "none",
344 java_version: "1.8",
345 compile_dex: true,
Jihoon Kanga7073b52024-02-12 23:18:52 +0000346 is_stubs_module: true,
Jihoon Kang491c7082023-06-15 18:37:01 +0000347}
348
349java_defaults {
350 name: "android-non-updatable_from_source_defaults",
351 libs: ["stub-annotations"],
352 static_libs: ["framework-res-package-jar"], // Export package of framework-res
Jihoon Kang059b9492023-12-29 00:40:34 +0000353}
354
355java_defaults {
356 name: "android-non-updatable_exportable_from_source_defaults",
Anton Hanssona4108912021-04-09 13:40:11 +0100357 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000358 targets: ["sdk"],
Anton Hanssona4108912021-04-09 13:40:11 +0100359 tag: ".jar",
360 dest: "android-non-updatable.jar",
Anton Hansson240ee482021-04-14 12:52:00 +0100361 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900362}
363
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100364java_library {
Anton Hanssona4748cd2021-04-09 10:16:19 +0100365 name: "android-non-updatable.stubs",
Jihoon Kang491c7082023-06-15 18:37:01 +0000366 defaults: ["android-non-updatable_defaults"],
367 static_libs: [
368 "android-non-updatable.stubs.from-source",
369 ],
370 product_variables: {
371 build_from_text_stub: {
372 static_libs: [
373 "android-non-updatable.stubs.from-text",
374 ],
375 exclude_static_libs: [
376 "android-non-updatable.stubs.from-source",
377 ],
378 },
379 },
380}
381
382java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000383 name: "android-non-updatable.stubs.exportable",
384 defaults: ["android-non-updatable_defaults"],
385 static_libs: [
386 "android-non-updatable.stubs.exportable.from-source",
387 ],
388}
389
390java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000391 name: "android-non-updatable.stubs.system",
392 defaults: ["android-non-updatable_defaults"],
393 static_libs: [
394 "android-non-updatable.stubs.system.from-source",
395 ],
396 product_variables: {
397 build_from_text_stub: {
398 static_libs: [
399 "android-non-updatable.stubs.system.from-text",
400 ],
401 exclude_static_libs: [
402 "android-non-updatable.stubs.system.from-source",
403 ],
404 },
405 },
406}
407
408java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000409 name: "android-non-updatable.stubs.exportable.system",
410 defaults: ["android-non-updatable_defaults"],
411 static_libs: [
412 "android-non-updatable.stubs.exportable.system.from-source",
413 ],
414}
415
416java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000417 name: "android-non-updatable.stubs.module_lib",
418 defaults: ["android-non-updatable_defaults"],
419 static_libs: [
420 "android-non-updatable.stubs.module_lib.from-source",
421 ],
422 product_variables: {
423 build_from_text_stub: {
424 static_libs: [
425 "android-non-updatable.stubs.module_lib.from-text",
426 ],
427 exclude_static_libs: [
428 "android-non-updatable.stubs.module_lib.from-source",
429 ],
430 },
431 },
432}
433
434java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000435 name: "android-non-updatable.stubs.exportable.module_lib",
436 defaults: ["android-non-updatable_defaults"],
437 static_libs: [
438 "android-non-updatable.stubs.exportable.module_lib.from-source",
439 ],
440}
441
442java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000443 name: "android-non-updatable.stubs.test",
444 defaults: ["android-non-updatable_defaults"],
445 static_libs: [
446 "android-non-updatable.stubs.test.from-source",
447 ],
448 product_variables: {
449 build_from_text_stub: {
450 static_libs: [
451 "android-non-updatable.stubs.test.from-text",
452 ],
453 exclude_static_libs: [
454 "android-non-updatable.stubs.test.from-source",
455 ],
456 },
457 },
458}
459
460java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000461 name: "android-non-updatable.stubs.exportable.test",
462 defaults: ["android-non-updatable_defaults"],
463 static_libs: [
464 "android-non-updatable.stubs.exportable.test.from-source",
465 ],
466}
467
468java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000469 name: "android-non-updatable.stubs.from-source",
470 defaults: [
471 "android-non-updatable_defaults",
472 "android-non-updatable_from_source_defaults",
473 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100474 srcs: [":api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000475 libs: ["all-modules-public-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000476}
477
478java_library {
479 name: "android-non-updatable.stubs.exportable.from-source",
480 defaults: [
481 "android-non-updatable_defaults",
482 "android-non-updatable_from_source_defaults",
483 "android-non-updatable_exportable_from_source_defaults",
484 ],
485 srcs: [":api-stubs-docs-non-updatable{.exportable}"],
486 libs: ["all-modules-public-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100487 dist: {
488 dir: "apistubs/android/public",
489 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100490}
491
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100492java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000493 name: "android-non-updatable.stubs.system.from-source",
494 defaults: [
495 "android-non-updatable_defaults",
496 "android-non-updatable_from_source_defaults",
497 ],
Anton Hansson240ee482021-04-14 12:52:00 +0100498 srcs: [":system-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000499 libs: ["all-modules-system-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000500}
501
502java_library {
503 name: "android-non-updatable.stubs.exportable.system.from-source",
504 defaults: [
505 "android-non-updatable_defaults",
506 "android-non-updatable_from_source_defaults",
507 "android-non-updatable_exportable_from_source_defaults",
508 ],
509 srcs: [":system-api-stubs-docs-non-updatable{.exportable}"],
510 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100511 dist: {
512 dir: "apistubs/android/system",
513 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100514}
515
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100516java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000517 name: "android-non-updatable.stubs.module_lib.from-source",
518 defaults: [
519 "android-non-updatable_defaults",
520 "android-non-updatable_from_source_defaults",
521 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100522 srcs: [":module-lib-api-stubs-docs-non-updatable"],
Anton Hansson648b0db2023-11-06 19:24:42 +0000523 libs: non_updatable_api_deps_on_modules,
Jihoon Kang059b9492023-12-29 00:40:34 +0000524}
525
526java_library {
527 name: "android-non-updatable.stubs.exportable.module_lib.from-source",
528 defaults: [
529 "android-non-updatable_defaults",
530 "android-non-updatable_from_source_defaults",
531 "android-non-updatable_exportable_from_source_defaults",
532 ],
533 srcs: [":module-lib-api-stubs-docs-non-updatable{.exportable}"],
534 libs: non_updatable_api_deps_on_modules,
Anton Hanssona4108912021-04-09 13:40:11 +0100535 dist: {
536 dir: "apistubs/android/module-lib",
537 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100538}
539
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100540java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000541 name: "android-non-updatable.stubs.test.from-source",
542 defaults: [
543 "android-non-updatable_defaults",
544 "android-non-updatable_from_source_defaults",
545 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100546 srcs: [":test-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000547 libs: ["all-modules-system-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000548}
549
550java_library {
551 name: "android-non-updatable.stubs.exportable.test.from-source",
552 defaults: [
553 "android-non-updatable_defaults",
554 "android-non-updatable_from_source_defaults",
555 "android-non-updatable_exportable_from_source_defaults",
556 ],
557 srcs: [":test-api-stubs-docs-non-updatable{.exportable}"],
558 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100559 dist: {
560 dir: "apistubs/android/test",
561 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100562}
563
564java_defaults {
Jihoon Kang491c7082023-06-15 18:37:01 +0000565 name: "android-non-updatable_from_text_defaults",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000566 defaults: ["android-non-updatable-stubs-libs-defaults"],
Jihoon Kang0c101db2023-03-14 07:03:46 +0000567 static_libs: ["framework-res-package-jar"],
568 libs: ["stub-annotations"],
Jihoon Kangdc16c222024-08-06 00:15:25 +0000569 sdk_version: "none",
570 system_modules: "none",
571 previous_api: ":android.api.public.latest",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000572}
573
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000574java_defaults {
575 name: "android-non-updatable_everything_from_text_defaults",
576 defaults: [
577 "android-non-updatable_from_text_defaults",
578 ],
579 stubs_type: "everything",
580}
581
Jihoon Kang0c101db2023-03-14 07:03:46 +0000582java_api_library {
583 name: "android-non-updatable.stubs.from-text",
584 api_surface: "public",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000585 api_contributions: [
586 "api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000587 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000588 defaults: ["android-non-updatable_everything_from_text_defaults"],
Paul Duffina2c4cd72024-06-18 18:49:48 +0100589 // Use full Android API not just the non-updatable API as the latter is incomplete
590 // and can result in incorrect behavior.
591 previous_api: ":android.api.combined.public.latest",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000592 libs: ["all-modules-public-stubs"],
Jihoon Kang0c101db2023-03-14 07:03:46 +0000593}
594
595java_api_library {
596 name: "android-non-updatable.stubs.system.from-text",
597 api_surface: "system",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000598 api_contributions: [
599 "api-stubs-docs-non-updatable.api.contribution",
600 "system-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000601 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000602 defaults: ["android-non-updatable_everything_from_text_defaults"],
Paul Duffina2c4cd72024-06-18 18:49:48 +0100603 // Use full Android API not just the non-updatable API as the latter is incomplete
604 // and can result in incorrect behavior.
605 previous_api: ":android.api.combined.system.latest",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000606 libs: ["all-modules-system-stubs"],
Jihoon Kang0c101db2023-03-14 07:03:46 +0000607}
608
609java_api_library {
610 name: "android-non-updatable.stubs.test.from-text",
611 api_surface: "test",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000612 api_contributions: [
613 "api-stubs-docs-non-updatable.api.contribution",
614 "system-api-stubs-docs-non-updatable.api.contribution",
615 "test-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000616 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000617 defaults: ["android-non-updatable_everything_from_text_defaults"],
Paul Duffina2c4cd72024-06-18 18:49:48 +0100618 // Use full Android API not just the non-updatable API as the latter is incomplete
619 // and can result in incorrect behavior.
620 previous_api: ":android.api.combined.test.latest",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000621 libs: ["all-modules-system-stubs"],
Jihoon Kang0c101db2023-03-14 07:03:46 +0000622}
623
624java_api_library {
625 name: "android-non-updatable.stubs.module_lib.from-text",
626 api_surface: "module_lib",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000627 api_contributions: [
628 "api-stubs-docs-non-updatable.api.contribution",
629 "system-api-stubs-docs-non-updatable.api.contribution",
630 "module-lib-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000631 ],
Jihoon Kangdc16c222024-08-06 00:15:25 +0000632 defaults: [
633 "module-classpath-java-defaults",
634 "android-non-updatable_everything_from_text_defaults",
635 ],
Paul Duffina2c4cd72024-06-18 18:49:48 +0100636 // Use full Android API not just the non-updatable API as the latter is incomplete
637 // and can result in incorrect behavior.
638 previous_api: ":android.api.combined.module-lib.latest",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000639}
640
Jihoon Kang4683b142023-10-05 23:42:51 +0000641// This module generates a stub jar that is a union of the test and module lib
642// non-updatable api contributions. Modules should not depend on the stub jar
643// generated from this module, as this module is strictly used for hiddenapi only.
644java_api_library {
645 name: "android-non-updatable.stubs.test_module_lib",
646 api_surface: "module_lib",
647 api_contributions: [
648 "api-stubs-docs-non-updatable.api.contribution",
649 "system-api-stubs-docs-non-updatable.api.contribution",
650 "test-api-stubs-docs-non-updatable.api.contribution",
651 "module-lib-api-stubs-docs-non-updatable.api.contribution",
652 ],
Jihoon Kangdc16c222024-08-06 00:15:25 +0000653 defaults: [
654 "module-classpath-java-defaults",
655 "android-non-updatable_everything_from_text_defaults",
656 ],
Jihoon Kang4683b142023-10-05 23:42:51 +0000657
Paul Duffina2c4cd72024-06-18 18:49:48 +0100658 // No need to specify previous_api as this is not used for compiling against.
Jihoon Kang4683b142023-10-05 23:42:51 +0000659 // This module is only used for hiddenapi, and other modules should not
660 // depend on this module.
661 visibility: ["//visibility:private"],
Jihoon Kangdc16c222024-08-06 00:15:25 +0000662 libs: ["all-modules-system-stubs"],
Jihoon Kang4683b142023-10-05 23:42:51 +0000663}
664
Jihoon Kang0c101db2023-03-14 07:03:46 +0000665java_defaults {
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000666 name: "android_stubs_dists_default",
667 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000668 targets: ["sdk"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000669 tag: ".jar",
670 dest: "android.jar",
671 },
Anton Hansson86925682021-04-14 14:54:43 +0100672 defaults_visibility: ["//frameworks/base/services"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000673}
674
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100675java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000676 name: "android_stubs_current",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000677 static_libs: [
678 "all-modules-public-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100679 "android-non-updatable.stubs",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100680 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100681 ],
Anton Hansson65057af2021-04-14 18:52:08 +0100682 defaults: ["android.jar_defaults"],
Jiyong Park7fb4b182019-12-20 14:35:43 +0900683}
684
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100685java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000686 name: "android_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000687 static_libs: [
688 "all-modules-public-stubs-exportable",
689 "android-non-updatable.stubs.exportable",
690 "private-stub-annotations-jar",
691 ],
692 defaults: ["android.jar_defaults"],
693}
694
695java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000696 name: "android_system_stubs_current",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000697 static_libs: [
698 "all-modules-system-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100699 "android-non-updatable.stubs.system",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100700 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100701 ],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000702 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100703 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000704 ],
705 visibility: ["//frameworks/base/services"],
706}
707
708java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000709 name: "android_system_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000710 static_libs: [
711 "all-modules-system-stubs-exportable",
712 "android-non-updatable.stubs.exportable.system",
713 "private-stub-annotations-jar",
714 ],
715 defaults: [
716 "android.jar_defaults",
Anton Hanssonc3002e52020-11-18 18:23:55 +0000717 "android_stubs_dists_default",
718 ],
719 dist: {
720 dir: "apistubs/android/system",
721 },
722 dists: [
723 {
724 // Legacy dist path
Anton Hanssondd8ef672022-01-04 08:53:19 +0000725 targets: ["sdk"],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000726 tag: ".jar",
727 dest: "android_system.jar",
728 },
729 ],
Anton Hansson76d3db42020-04-09 14:16:37 +0100730}
731
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100732java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000733 name: "android_test_stubs_current",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000734 static_libs: [
Nikita Ioffe5593fbb2022-12-01 14:52:34 +0000735 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
736 // include the SystemApi of framework-non-updatable-sources.
737 "all-updatable-modules-system-stubs",
738 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
739 "all-non-updatable-modules-test-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100740 "android-non-updatable.stubs.test",
Anton Hansson7ce31c12020-10-15 18:38:49 +0100741 "private-stub-annotations-jar",
742 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000743 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100744 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000745 ],
746 visibility: ["//frameworks/base/services"],
747}
748
749java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000750 name: "android_test_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000751 static_libs: [
752 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
753 // include the SystemApi of framework-non-updatable-sources.
754 "all-updatable-modules-system-stubs-exportable",
755 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
756 "all-non-updatable-modules-test-stubs-exportable",
757 "android-non-updatable.stubs.exportable.test",
758 "private-stub-annotations-jar",
759 ],
760 defaults: [
761 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000762 "android_stubs_dists_default",
763 ],
764 dist: {
765 dir: "apistubs/android/test",
766 },
Jiyong Parke3095162019-12-20 15:30:28 +0900767}
768
Jihoon Kang059b9492023-12-29 00:40:34 +0000769// This module does not need to be copied to dist
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100770java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000771 name: "android_test_frameworks_core_stubs_current",
Mark Whitee35b1382023-08-12 01:31:26 +0000772 static_libs: [
773 "all-updatable-modules-system-stubs",
774 "android-non-updatable.stubs.test",
Mark Whitee35b1382023-08-12 01:31:26 +0000775 ],
776 defaults: [
777 "android.jar_defaults",
Mark Whitee35b1382023-08-12 01:31:26 +0000778 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000779 visibility: ["//frameworks/base/services"],
Mark Whitee35b1382023-08-12 01:31:26 +0000780}
781
782java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000783 name: "android_module_lib_stubs_current",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000784 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100785 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000786 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100787 static_libs: [
788 "android-non-updatable.stubs.module_lib",
Victor Chang6b107a92021-06-17 23:49:42 +0100789 "art.module.public.api.stubs.module_lib",
Giulio Fiscella68a04112021-11-30 16:32:44 +0000790 "i18n.module.public.api.stubs",
Anton Hanssonb7d532e2021-02-05 11:40:25 +0000791 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000792 visibility: ["//frameworks/base/services"],
793}
794
795java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000796 name: "android_module_lib_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000797 defaults: [
798 "android.jar_defaults",
799 "android_stubs_dists_default",
800 ],
801 static_libs: [
802 "android-non-updatable.stubs.exportable.module_lib",
803 "art.module.public.api.stubs.exportable.module_lib",
804 "i18n.module.public.api.stubs.exportable",
805 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000806 dist: {
807 dir: "apistubs/android/module-lib",
808 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900809}
810
Andrei Oneafaa271a2021-03-17 13:32:51 +0000811java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000812 name: "android_system_server_stubs_current",
Anton Hansson21fb1082023-03-03 16:22:42 +0000813 defaults: [
814 "android.jar_defaults",
Anton Hansson21fb1082023-03-03 16:22:42 +0000815 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000816 srcs: [":services-non-updatable-stubs"],
817 installable: false,
818 static_libs: [
Jihoon Kangdc16c222024-08-06 00:15:25 +0000819 "android_module_lib_stubs_current",
Andrei Oneafaa271a2021-03-17 13:32:51 +0000820 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000821 visibility: ["//frameworks/base/services"],
822}
823
824java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000825 name: "android_system_server_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000826 defaults: [
827 "android.jar_defaults",
828 "android_stubs_dists_default",
829 ],
830 srcs: [":services-non-updatable-stubs{.exportable}"],
831 installable: false,
832 static_libs: [
Jihoon Kangdc16c222024-08-06 00:15:25 +0000833 "android_module_lib_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000834 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000835 dist: {
836 dir: "apistubs/android/system-server",
837 },
838}
839
Colin Crosscf87a572022-10-20 14:06:53 -0700840java_library {
841 name: "android_stubs_private_jar",
842 defaults: ["android.jar_defaults"],
843 visibility: [
844 "//visibility:override",
845 "//visibility:private",
846 ],
847 static_libs: [
848 "stable.core.platform.api.stubs",
849 "core-lambda-stubs-for-system-modules",
850 "core-generated-annotation-stubs",
851 "framework",
852 "ext",
853 "framework-res-package-jar",
854 // The order of this matters, it has to be last to provide a
855 // package-private androidx.annotation.RecentlyNonNull without
856 // overriding the public android.annotation.Nullable in framework.jar
857 // with its own package-private android.annotation.Nullable.
858 "private-stub-annotations-jar",
859 ],
Jihoon Kanga7073b52024-02-12 23:18:52 +0000860 is_stubs_module: true,
Colin Crosscf87a572022-10-20 14:06:53 -0700861}
862
863java_genrule {
864 name: "android_stubs_private_hjar",
Colin Crosscf87a572022-10-20 14:06:53 -0700865 srcs: [":android_stubs_private_jar{.hjar}"],
866 out: ["android_stubs_private.jar"],
867 cmd: "cp $(in) $(out)",
868}
869
870java_library {
871 name: "android_stubs_private",
872 defaults: ["android_stubs_dists_default"],
Colin Crosscf87a572022-10-20 14:06:53 -0700873 sdk_version: "none",
874 system_modules: "none",
875 static_libs: ["android_stubs_private_hjar"],
876 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000877 // Add to private_api_stubs dist target for easier packaging by scripts. This module is
878 // useful for creating a platform SDK, which can be packaged in ANDROID_HOME and used from
879 // Gradle, allowing for development of platform apps that make use of hidden APIs.
880 targets: ["private_api_stubs"],
Colin Crosscf87a572022-10-20 14:06:53 -0700881 dir: "apistubs/android/private",
882 },
883}
884
885java_genrule {
886 name: "android_stubs_private_framework_aidl",
Colin Crosscf87a572022-10-20 14:06:53 -0700887 tools: ["sdkparcelables"],
888 srcs: [":android_stubs_private"],
889 out: ["framework.aidl"],
890 cmd: "rm -f $(genDir)/framework.aidl.merged && " +
891 "for i in $(in); do " +
892 " rm -f $(genDir)/framework.aidl.tmp && " +
Steven Moreland07b69ec2024-08-13 18:28:56 +0000893 " $(location sdkparcelables) $$i $(genDir)/framework.aidl.tmp --guarantee_stable && " +
Colin Crosscf87a572022-10-20 14:06:53 -0700894 " cat $(genDir)/framework.aidl.tmp >> $(genDir)/framework.aidl.merged; " +
895 "done && " +
896 "sort -u $(genDir)/framework.aidl.merged > $(out)",
897 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000898 targets: [
899 "sdk",
900 // Add to private_api_stubs dist target for easier packaging by scripts.
901 // See explanation in the "android_stubs_private" module above.
902 "private_api_stubs",
903 ],
Colin Crosscf87a572022-10-20 14:06:53 -0700904 dir: "apistubs/android/private",
905 },
906}
907
Anton Hansson36bc27c2021-09-14 15:45:13 +0100908////////////////////////////////////////////////////////////////////////
909// api-versions.xml generation, for public and system. This API database
910// also contains the android.test.* APIs.
911////////////////////////////////////////////////////////////////////////
912
913java_library {
914 name: "android_stubs_current_with_test_libs",
915 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +0000916 "android_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +0100917 "android.test.base.stubs",
918 "android.test.mock.stubs",
919 "android.test.runner.stubs",
920 ],
921 defaults: ["android.jar_defaults"],
922 visibility: [
923 "//visibility:override",
924 "//visibility:private",
925 ],
926}
927
928java_library {
929 name: "android_system_stubs_current_with_test_libs",
930 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +0000931 "android_system_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +0100932 "android.test.base.stubs.system",
933 "android.test.mock.stubs.system",
934 "android.test.runner.stubs.system",
935 ],
936 defaults: ["android.jar_defaults"],
937 visibility: [
938 "//visibility:override",
939 "//visibility:private",
940 ],
941}
942
Cole Faustdcda3702022-10-04 14:46:35 -0700943java_library {
944 name: "android_module_stubs_current_with_test_libs",
945 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +0000946 "android_module_lib_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -0700947 "android.test.base.stubs",
948 "android.test.mock.stubs",
949 "android.test.runner.stubs",
950 ],
951 defaults: ["android.jar_defaults"],
952 visibility: [
953 "//visibility:override",
954 "//visibility:private",
955 ],
956}
957
958java_library {
959 name: "android_system_server_stubs_current_with_test_libs",
960 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +0000961 "android_system_server_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -0700962 "android.test.base.stubs.system",
963 "android.test.mock.stubs.system",
964 "android.test.runner.stubs.system",
965 ],
966 defaults: ["android.jar_defaults"],
967 visibility: [
968 "//visibility:override",
969 "//visibility:private",
970 ],
971}
972
Paul Duffin0834ea72024-05-02 12:09:51 +0100973// Defaults for `droidstubs` modules that generate `api-versions.xml` files for
974// the various API surfaces.
975stubs_defaults {
976 name: "api_versions_base_defaults",
977 defaults_visibility: ["//visibility:private"],
Anton Hansson36bc27c2021-09-14 15:45:13 +0100978 generate_stubs: false,
979 api_levels_annotations_enabled: true,
980 api_levels_annotations_dirs: [
981 "sdk-dir",
982 "api-versions-jars-dir",
983 ],
Paul Duffin0834ea72024-05-02 12:09:51 +0100984}
985
986// Defaults for `droidstubs` modules that generate complete `api-versions.xml`
987// files, i.e. include SDK extensions.
988stubs_defaults {
989 name: "api_versions_complete_defaults",
990 defaults_visibility: ["//visibility:private"],
991 defaults: ["api_versions_base_defaults"],
MÃ¥rten Kongstad54845332022-09-06 15:50:37 +0200992 extensions_info_file: ":sdk-extensions-info",
Paul Duffin0834ea72024-05-02 12:09:51 +0100993}
994
995// Produces an `api-versions.xml` file that includes up-to-date information
996// about all the public APIs, both updatable and non-updatable and historic
997// information about all previous dessert and SDK extension releases.
998droidstubs {
999 name: "api_versions_public",
1000 defaults: ["api_versions_complete_defaults"],
1001 srcs: [":android_stubs_current_with_test_libs{.jar}"],
1002 api_levels_sdk_type: "public",
Anton Hanssonca6e67a2023-03-03 17:55:09 +00001003 visibility: ["//frameworks/base"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001004}
1005
Paul Duffin0834ea72024-05-02 12:09:51 +01001006// Produces an `api-versions.xml` file that includes up-to-date information
1007// about all the system APIs, both updatable and non-updatable and historic
1008// information about all previous dessert and SDK extension releases.
Anton Hansson36bc27c2021-09-14 15:45:13 +01001009droidstubs {
1010 name: "api_versions_system",
Paul Duffin0834ea72024-05-02 12:09:51 +01001011 defaults: ["api_versions_complete_defaults"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001012 srcs: [":android_system_stubs_current_with_test_libs{.jar}"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001013 api_levels_sdk_type: "system",
Paul Duffin75f63602024-01-05 18:15:59 +00001014 dists: [
1015 // Make the api-versions.xml file for the system API available in the
1016 // sdk build target.
1017 {
1018 targets: ["sdk"],
1019 dest: "api-versions_system.xml",
1020 tag: ".api_versions.xml",
1021 },
1022 ],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001023}
1024
Paul Duffin0834ea72024-05-02 12:09:51 +01001025// Defaults for `droidstubs` modules that generate `api-versions.xml` files that
1026// only include non-updatable code, i.e. for platform API only, not SDK
1027// extensions.
1028stubs_defaults {
1029 name: "api_versions_non_updatable_defaults",
1030 defaults_visibility: ["//visibility:private"],
1031 defaults: ["api_versions_base_defaults"],
Cole Faustbf4ce752023-02-08 12:46:06 -08001032 // this only has the non-updatable portions of the module lib sdk,
1033 // which can reference classes from updatable apexes, so remove references to them
1034 // from this api_versions file.
1035 flags: ["--remove-missing-class-references-in-api-levels"],
Cole Faust1deced12023-02-15 13:24:18 -08001036 // extensions_info_file is purposefully omitted, because this module should just be
1037 // the non-updatable portions of the sdk, and extension sdks are updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001038}
1039
Paul Duffin0834ea72024-05-02 12:09:51 +01001040// Produces an `api-versions.xml` file that includes up-to-date information
1041// about only the non-updatable module-lib APIs and historic information about
1042// all previous dessert and SDK extension releases. That historic information
1043// may include information about APIs that were previously not-updatable which
1044// have since become updatable.
1045droidstubs {
1046 name: "api_versions_module_lib",
1047 defaults: ["api_versions_non_updatable_defaults"],
1048 srcs: [":android_module_stubs_current_with_test_libs{.jar}"],
1049 api_levels_sdk_type: "module-lib",
1050}
1051
Paul Duffinfb5e07d2024-05-02 14:51:41 +01001052// Create a single jar containing the whole module-lib API surface.
1053// This is needed because Metalava only consumes the first jar file it is given
1054// and ignores the rest.
1055java_library {
1056 name: "android_module_stubs_complete_current_with_test_libs",
1057 static_libs: [
1058 "android_module_stubs_current_with_test_libs",
1059 "framework-updatable-stubs-module_libs_api-exportable",
1060 ],
1061 defaults: ["android.jar_defaults"],
1062 visibility: [
1063 "//visibility:override",
1064 "//visibility:private",
1065 ],
1066}
1067
1068// Produces an `api-versions.xml` file that includes up-to-date information
1069// about all the module-lib APIs, both updatable and non-updatable and historic
1070// information about all previous dessert and SDK extension releases.
1071droidstubs {
1072 name: "api_versions_module_lib_complete",
1073 defaults: ["api_versions_complete_defaults"],
1074 srcs: [":android_module_stubs_complete_current_with_test_libs{.jar}"],
1075 api_levels_sdk_type: "module-lib",
1076}
1077
Paul Duffin0834ea72024-05-02 12:09:51 +01001078// Produces an `api-versions.xml` file that includes up-to-date information
1079// about only the non-updatable system-server APIs and historic information
1080// about all previous dessert and SDK extension releases. That historic
1081// information may include information about APIs that were previously
1082// not-updatable which have since become updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001083droidstubs {
1084 name: "api_versions_system_server",
Paul Duffin0834ea72024-05-02 12:09:51 +01001085 defaults: ["api_versions_non_updatable_defaults"],
Cole Faustdcda3702022-10-04 14:46:35 -07001086 srcs: [":android_system_server_stubs_current_with_test_libs{.jar}"],
Cole Faustdcda3702022-10-04 14:46:35 -07001087 api_levels_sdk_type: "system-server",
Cole Faustdcda3702022-10-04 14:46:35 -07001088}
1089
Paul Duffinfb5e07d2024-05-02 14:51:41 +01001090// Create a single jar containing the whole system-server API surface.
1091// This is needed because Metalava only consumes the first jar file it is given
1092// and ignores the rest.
1093java_library {
1094 name: "android_system_server_stubs_complete_current_with_test_libs",
1095 static_libs: [
1096 "android_system_server_stubs_current_with_test_libs",
1097 // system-server extends module-lib but libraries which only service-*
1098 // libraries provided system-server APIs, so include module-lib APIs for
1099 // the others, e.g. framework-* libraries.
1100 "framework-updatable-stubs-module_libs_api-exportable",
1101 "framework-updatable-stubs-system_server_api-exportable",
1102 ],
1103 defaults: ["android.jar_defaults"],
1104 visibility: [
1105 "//visibility:override",
1106 "//visibility:private",
1107 ],
1108}
1109
1110// Produces an `api-versions.xml` file that includes up-to-date information
1111// about all the system-server APIs, both updatable and non-updatable and
1112// historic information about all previous dessert and SDK extension releases.
1113droidstubs {
1114 name: "api_versions_system_server_complete",
1115 defaults: ["api_versions_complete_defaults"],
1116 srcs: [":android_system_server_stubs_complete_current_with_test_libs{.jar}"],
1117 api_levels_sdk_type: "system-server",
1118}
1119
Jiyong Park7fb4b182019-12-20 14:35:43 +09001120/////////////////////////////////////////////////////////////////////
1121// hwbinder.stubs provides APIs required for building HIDL Java
1122// libraries.
1123/////////////////////////////////////////////////////////////////////
1124
1125droidstubs {
1126 name: "hwbinder-stubs-docs",
Anton Hansson23f319f2023-03-03 16:04:02 +00001127 srcs: [":hwbinder-stubs-srcs"],
Colin Cross037d7fb2021-03-25 17:01:55 -07001128 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001129 installable: false,
1130 sdk_version: "core_platform",
1131 annotations_enabled: true,
Anton Hansson48ee95e2020-05-02 17:49:26 +01001132 previous_api: ":android.api.public.latest",
Jiyong Park7fb4b182019-12-20 14:35:43 +09001133 merge_annotations_dirs: [
1134 "metalava-manual",
1135 ],
Anton Hansson84a0e712023-10-23 09:17:45 +00001136 flags: priv_apps,
Jiyong Park7fb4b182019-12-20 14:35:43 +09001137}
1138
Anton Hanssonbbdd64b2021-04-26 18:47:39 +01001139java_library {
Jiyong Park7fb4b182019-12-20 14:35:43 +09001140 name: "hwbinder.stubs",
1141 sdk_version: "core_current",
Colin Cross037d7fb2021-03-25 17:01:55 -07001142 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001143 srcs: [
1144 ":hwbinder-stubs-docs",
1145 ],
Anton Hansson86925682021-04-14 14:54:43 +01001146 visibility: ["//visibility:public"],
Jihoon Kanga85551e2024-07-11 18:05:21 +00001147 is_stubs_module: true,
Jiyong Park7fb4b182019-12-20 14:35:43 +09001148}