blob: 12820f9ff2776ba2062cf4e4e6d6aca81635ac3b [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 Kang0c101db2023-03-14 07:03:46 +0000566 static_libs: ["framework-res-package-jar"],
567 libs: ["stub-annotations"],
568}
569
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000570java_defaults {
571 name: "android-non-updatable_everything_from_text_defaults",
572 defaults: [
573 "android-non-updatable_from_text_defaults",
574 ],
575 stubs_type: "everything",
576}
577
Jihoon Kang0c101db2023-03-14 07:03:46 +0000578java_api_library {
579 name: "android-non-updatable.stubs.from-text",
580 api_surface: "public",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000581 api_contributions: [
582 "api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000583 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000584 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000585 full_api_surface_stub: "android_stubs_current.from-text",
Paul Duffina2c4cd72024-06-18 18:49:48 +0100586 // Use full Android API not just the non-updatable API as the latter is incomplete
587 // and can result in incorrect behavior.
588 previous_api: ":android.api.combined.public.latest",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000589}
590
591java_api_library {
592 name: "android-non-updatable.stubs.system.from-text",
593 api_surface: "system",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000594 api_contributions: [
595 "api-stubs-docs-non-updatable.api.contribution",
596 "system-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000597 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000598 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000599 full_api_surface_stub: "android_system_stubs_current.from-text",
Paul Duffina2c4cd72024-06-18 18:49:48 +0100600 // Use full Android API not just the non-updatable API as the latter is incomplete
601 // and can result in incorrect behavior.
602 previous_api: ":android.api.combined.system.latest",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000603}
604
605java_api_library {
606 name: "android-non-updatable.stubs.test.from-text",
607 api_surface: "test",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000608 api_contributions: [
609 "api-stubs-docs-non-updatable.api.contribution",
610 "system-api-stubs-docs-non-updatable.api.contribution",
611 "test-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000612 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000613 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000614 full_api_surface_stub: "android_test_stubs_current.from-text",
Paul Duffina2c4cd72024-06-18 18:49:48 +0100615 // Use full Android API not just the non-updatable API as the latter is incomplete
616 // and can result in incorrect behavior.
617 previous_api: ":android.api.combined.test.latest",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000618}
619
620java_api_library {
621 name: "android-non-updatable.stubs.module_lib.from-text",
622 api_surface: "module_lib",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000623 api_contributions: [
624 "api-stubs-docs-non-updatable.api.contribution",
625 "system-api-stubs-docs-non-updatable.api.contribution",
626 "module-lib-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000627 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000628 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000629 full_api_surface_stub: "android_module_lib_stubs_current_full.from-text",
Paul Duffina2c4cd72024-06-18 18:49:48 +0100630 // Use full Android API not just the non-updatable API as the latter is incomplete
631 // and can result in incorrect behavior.
632 previous_api: ":android.api.combined.module-lib.latest",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000633}
634
Jihoon Kang4683b142023-10-05 23:42:51 +0000635// This module generates a stub jar that is a union of the test and module lib
636// non-updatable api contributions. Modules should not depend on the stub jar
637// generated from this module, as this module is strictly used for hiddenapi only.
638java_api_library {
639 name: "android-non-updatable.stubs.test_module_lib",
640 api_surface: "module_lib",
641 api_contributions: [
642 "api-stubs-docs-non-updatable.api.contribution",
643 "system-api-stubs-docs-non-updatable.api.contribution",
644 "test-api-stubs-docs-non-updatable.api.contribution",
645 "module-lib-api-stubs-docs-non-updatable.api.contribution",
646 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000647 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang4683b142023-10-05 23:42:51 +0000648 full_api_surface_stub: "android_test_module_lib_stubs_current.from-text",
649
Paul Duffina2c4cd72024-06-18 18:49:48 +0100650 // No need to specify previous_api as this is not used for compiling against.
651
Jihoon Kang4683b142023-10-05 23:42:51 +0000652 // This module is only used for hiddenapi, and other modules should not
653 // depend on this module.
654 visibility: ["//visibility:private"],
655}
656
Jihoon Kang0c101db2023-03-14 07:03:46 +0000657java_defaults {
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000658 name: "android_stubs_dists_default",
659 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000660 targets: ["sdk"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000661 tag: ".jar",
662 dest: "android.jar",
663 },
Anton Hansson86925682021-04-14 14:54:43 +0100664 defaults_visibility: ["//frameworks/base/services"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000665}
666
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100667java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000668 name: "android_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000669 static_libs: [
670 "all-modules-public-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100671 "android-non-updatable.stubs",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100672 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100673 ],
Anton Hansson65057af2021-04-14 18:52:08 +0100674 defaults: ["android.jar_defaults"],
Jiyong Park7fb4b182019-12-20 14:35:43 +0900675}
676
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100677java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000678 name: "android_stubs_current_exportable.from-source",
679 static_libs: [
680 "all-modules-public-stubs-exportable",
681 "android-non-updatable.stubs.exportable",
682 "private-stub-annotations-jar",
683 ],
684 defaults: ["android.jar_defaults"],
685}
686
687java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000688 name: "android_system_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000689 static_libs: [
690 "all-modules-system-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100691 "android-non-updatable.stubs.system",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100692 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100693 ],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000694 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100695 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000696 ],
697 visibility: ["//frameworks/base/services"],
698}
699
700java_library {
701 name: "android_system_stubs_current_exportable.from-source",
702 static_libs: [
703 "all-modules-system-stubs-exportable",
704 "android-non-updatable.stubs.exportable.system",
705 "private-stub-annotations-jar",
706 ],
707 defaults: [
708 "android.jar_defaults",
Anton Hanssonc3002e52020-11-18 18:23:55 +0000709 "android_stubs_dists_default",
710 ],
711 dist: {
712 dir: "apistubs/android/system",
713 },
714 dists: [
715 {
716 // Legacy dist path
Anton Hanssondd8ef672022-01-04 08:53:19 +0000717 targets: ["sdk"],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000718 tag: ".jar",
719 dest: "android_system.jar",
720 },
721 ],
Anton Hansson76d3db42020-04-09 14:16:37 +0100722}
723
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100724java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000725 name: "android_test_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000726 static_libs: [
Nikita Ioffe5593fbb2022-12-01 14:52:34 +0000727 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
728 // include the SystemApi of framework-non-updatable-sources.
729 "all-updatable-modules-system-stubs",
730 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
731 "all-non-updatable-modules-test-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100732 "android-non-updatable.stubs.test",
Anton Hansson7ce31c12020-10-15 18:38:49 +0100733 "private-stub-annotations-jar",
734 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000735 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100736 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000737 ],
738 visibility: ["//frameworks/base/services"],
739}
740
741java_library {
742 name: "android_test_stubs_current_exportable.from-source",
743 static_libs: [
744 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
745 // include the SystemApi of framework-non-updatable-sources.
746 "all-updatable-modules-system-stubs-exportable",
747 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
748 "all-non-updatable-modules-test-stubs-exportable",
749 "android-non-updatable.stubs.exportable.test",
750 "private-stub-annotations-jar",
751 ],
752 defaults: [
753 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000754 "android_stubs_dists_default",
755 ],
756 dist: {
757 dir: "apistubs/android/test",
758 },
Jiyong Parke3095162019-12-20 15:30:28 +0900759}
760
Jihoon Kang059b9492023-12-29 00:40:34 +0000761// This module does not need to be copied to dist
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100762java_library {
Mark Whitee35b1382023-08-12 01:31:26 +0000763 name: "android_test_frameworks_core_stubs_current.from-source",
764 static_libs: [
765 "all-updatable-modules-system-stubs",
766 "android-non-updatable.stubs.test",
Mark Whitee35b1382023-08-12 01:31:26 +0000767 ],
768 defaults: [
769 "android.jar_defaults",
Mark Whitee35b1382023-08-12 01:31:26 +0000770 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000771 visibility: ["//frameworks/base/services"],
Mark Whitee35b1382023-08-12 01:31:26 +0000772}
773
774java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000775 name: "android_module_lib_stubs_current.from-source",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000776 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100777 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000778 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100779 static_libs: [
780 "android-non-updatable.stubs.module_lib",
Victor Chang6b107a92021-06-17 23:49:42 +0100781 "art.module.public.api.stubs.module_lib",
Giulio Fiscella68a04112021-11-30 16:32:44 +0000782 "i18n.module.public.api.stubs",
Anton Hanssonb7d532e2021-02-05 11:40:25 +0000783 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000784 visibility: ["//frameworks/base/services"],
785}
786
787java_library {
788 name: "android_module_lib_stubs_current_exportable.from-source",
789 defaults: [
790 "android.jar_defaults",
791 "android_stubs_dists_default",
792 ],
793 static_libs: [
794 "android-non-updatable.stubs.exportable.module_lib",
795 "art.module.public.api.stubs.exportable.module_lib",
796 "i18n.module.public.api.stubs.exportable",
797 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000798 dist: {
799 dir: "apistubs/android/module-lib",
800 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900801}
802
Andrei Oneafaa271a2021-03-17 13:32:51 +0000803java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000804 name: "android_system_server_stubs_current.from-source",
Anton Hansson21fb1082023-03-03 16:22:42 +0000805 defaults: [
806 "android.jar_defaults",
Anton Hansson21fb1082023-03-03 16:22:42 +0000807 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000808 srcs: [":services-non-updatable-stubs"],
809 installable: false,
810 static_libs: [
Jihoon Kang1453baa2023-05-27 05:32:30 +0000811 "android_module_lib_stubs_current.from-source",
Andrei Oneafaa271a2021-03-17 13:32:51 +0000812 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000813 visibility: ["//frameworks/base/services"],
814}
815
816java_library {
817 name: "android_system_server_stubs_current_exportable.from-source",
818 defaults: [
819 "android.jar_defaults",
820 "android_stubs_dists_default",
821 ],
822 srcs: [":services-non-updatable-stubs{.exportable}"],
823 installable: false,
824 static_libs: [
825 "android_module_lib_stubs_current_exportable.from-source",
826 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000827 dist: {
828 dir: "apistubs/android/system-server",
829 },
830}
831
Colin Crosscf87a572022-10-20 14:06:53 -0700832java_library {
833 name: "android_stubs_private_jar",
834 defaults: ["android.jar_defaults"],
835 visibility: [
836 "//visibility:override",
837 "//visibility:private",
838 ],
839 static_libs: [
840 "stable.core.platform.api.stubs",
841 "core-lambda-stubs-for-system-modules",
842 "core-generated-annotation-stubs",
843 "framework",
844 "ext",
845 "framework-res-package-jar",
846 // The order of this matters, it has to be last to provide a
847 // package-private androidx.annotation.RecentlyNonNull without
848 // overriding the public android.annotation.Nullable in framework.jar
849 // with its own package-private android.annotation.Nullable.
850 "private-stub-annotations-jar",
851 ],
Jihoon Kanga7073b52024-02-12 23:18:52 +0000852 is_stubs_module: true,
Colin Crosscf87a572022-10-20 14:06:53 -0700853}
854
855java_genrule {
856 name: "android_stubs_private_hjar",
Colin Crosscf87a572022-10-20 14:06:53 -0700857 srcs: [":android_stubs_private_jar{.hjar}"],
858 out: ["android_stubs_private.jar"],
859 cmd: "cp $(in) $(out)",
860}
861
862java_library {
863 name: "android_stubs_private",
864 defaults: ["android_stubs_dists_default"],
Colin Crosscf87a572022-10-20 14:06:53 -0700865 sdk_version: "none",
866 system_modules: "none",
867 static_libs: ["android_stubs_private_hjar"],
868 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000869 // Add to private_api_stubs dist target for easier packaging by scripts. This module is
870 // useful for creating a platform SDK, which can be packaged in ANDROID_HOME and used from
871 // Gradle, allowing for development of platform apps that make use of hidden APIs.
872 targets: ["private_api_stubs"],
Colin Crosscf87a572022-10-20 14:06:53 -0700873 dir: "apistubs/android/private",
874 },
875}
876
877java_genrule {
878 name: "android_stubs_private_framework_aidl",
Colin Crosscf87a572022-10-20 14:06:53 -0700879 tools: ["sdkparcelables"],
880 srcs: [":android_stubs_private"],
881 out: ["framework.aidl"],
882 cmd: "rm -f $(genDir)/framework.aidl.merged && " +
883 "for i in $(in); do " +
884 " rm -f $(genDir)/framework.aidl.tmp && " +
885 " $(location sdkparcelables) $$i $(genDir)/framework.aidl.tmp && " +
886 " cat $(genDir)/framework.aidl.tmp >> $(genDir)/framework.aidl.merged; " +
887 "done && " +
888 "sort -u $(genDir)/framework.aidl.merged > $(out)",
889 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000890 targets: [
891 "sdk",
892 // Add to private_api_stubs dist target for easier packaging by scripts.
893 // See explanation in the "android_stubs_private" module above.
894 "private_api_stubs",
895 ],
Colin Crosscf87a572022-10-20 14:06:53 -0700896 dir: "apistubs/android/private",
897 },
898}
899
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000900//
901// Java API defaults and libraries for single tree build
902//
903
904java_defaults {
905 name: "stub-annotation-defaults",
906 libs: [
907 "stub-annotations",
908 ],
909 static_libs: [
910 // stub annotations do not contribute to the API surfaces but are statically
911 // linked in the stubs for API surfaces (see frameworks/base/StubLibraries.bp).
912 // This is because annotation processors insist on loading the classes for any
913 // annotations found, thus should exist inside android.jar.
914 "private-stub-annotations-jar",
915 ],
Jihoon Kanga7073b52024-02-12 23:18:52 +0000916 is_stubs_module: true,
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000917}
918
919// Listing of API domains contribution and dependencies per API surfaces
920java_defaults {
921 name: "android_test_stubs_current_contributions",
922 api_surface: "test",
923 api_contributions: [
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000924 "framework-virtualization.stubs.source.test.api.contribution",
Mark White3cc5e002023-08-07 11:18:09 +0000925 "framework-location.stubs.source.test.api.contribution",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000926 ],
927}
928
929java_defaults {
930 name: "android_test_frameworks_core_stubs_current_contributions",
931 api_surface: "test",
932 api_contributions: [
933 "test-api-stubs-docs-non-updatable.api.contribution",
934 ],
935}
936
937java_defaults {
938 name: "android_module_lib_stubs_current_contributions",
939 api_surface: "module-lib",
940 api_contributions: [
941 "api-stubs-docs-non-updatable.api.contribution",
942 "system-api-stubs-docs-non-updatable.api.contribution",
943 "module-lib-api-stubs-docs-non-updatable.api.contribution",
944 "art.module.public.api.stubs.source.api.contribution",
945 "art.module.public.api.stubs.source.system.api.contribution",
946 "art.module.public.api.stubs.source.module_lib.api.contribution",
947 "i18n.module.public.api.stubs.source.api.contribution",
948 "i18n.module.public.api.stubs.source.system.api.contribution",
949 "i18n.module.public.api.stubs.source.module_lib.api.contribution",
950 ],
Paul Duffina2c4cd72024-06-18 18:49:48 +0100951 previous_api: ":android.api.combined.module-lib.latest",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000952}
953
954// Java API library definitions per API surface
955java_api_library {
956 name: "android_stubs_current.from-text",
957 api_surface: "public",
958 defaults: [
959 // This module is dynamically created at frameworks/base/api/api.go
960 // instead of being written out, in order to minimize edits in the codebase
961 // when there is a change in the list of modules.
962 // that contributes to an api surface.
963 "android_stubs_current_contributions",
964 "stub-annotation-defaults",
965 ],
966 api_contributions: [
967 "api-stubs-docs-non-updatable.api.contribution",
968 ],
969 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000970 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000971 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000972}
973
974java_api_library {
975 name: "android_system_stubs_current.from-text",
976 api_surface: "system",
977 defaults: [
978 "android_stubs_current_contributions",
979 "android_system_stubs_current_contributions",
980 "stub-annotation-defaults",
981 ],
982 api_contributions: [
983 "api-stubs-docs-non-updatable.api.contribution",
984 "system-api-stubs-docs-non-updatable.api.contribution",
985 ],
986 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000987 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000988 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000989}
990
991java_api_library {
992 name: "android_test_stubs_current.from-text",
993 api_surface: "test",
994 defaults: [
995 "android_stubs_current_contributions",
996 "android_system_stubs_current_contributions",
997 "android_test_stubs_current_contributions",
998 "stub-annotation-defaults",
999 ],
1000 api_contributions: [
1001 "api-stubs-docs-non-updatable.api.contribution",
1002 "system-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang1c5022b2023-09-20 22:02:29 +00001003 "test-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001004 ],
1005 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001006 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001007 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001008}
1009
1010java_api_library {
1011 name: "android_test_frameworks_core_stubs_current.from-text",
1012 api_surface: "test",
1013 defaults: [
1014 "android_stubs_current_contributions",
1015 "android_system_stubs_current_contributions",
1016 "android_test_frameworks_core_stubs_current_contributions",
Jihoon Kangbeeb35a2023-10-17 22:22:24 +00001017 ],
1018 libs: [
1019 "stub-annotations",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001020 ],
1021 api_contributions: [
1022 "api-stubs-docs-non-updatable.api.contribution",
1023 "system-api-stubs-docs-non-updatable.api.contribution",
1024 ],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001025 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001026 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001027}
1028
1029java_api_library {
1030 name: "android_module_lib_stubs_current_full.from-text",
1031 api_surface: "module-lib",
1032 defaults: [
1033 "android_stubs_current_contributions",
1034 "android_system_stubs_current_contributions",
1035 "android_module_lib_stubs_current_contributions_full",
1036 ],
1037 libs: [
1038 "stub-annotations",
1039 ],
1040 api_contributions: [
1041 "api-stubs-docs-non-updatable.api.contribution",
1042 "system-api-stubs-docs-non-updatable.api.contribution",
1043 "module-lib-api-stubs-docs-non-updatable.api.contribution",
1044 ],
1045 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001046 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001047 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001048}
1049
1050java_api_library {
1051 name: "android_module_lib_stubs_current.from-text",
1052 api_surface: "module-lib",
1053 defaults: [
1054 "android_module_lib_stubs_current_contributions",
1055 ],
1056 libs: [
1057 "android_module_lib_stubs_current_full.from-text",
1058 "stub-annotations",
1059 ],
1060 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001061 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001062 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001063}
1064
1065java_api_library {
Jihoon Kang4683b142023-10-05 23:42:51 +00001066 name: "android_test_module_lib_stubs_current.from-text",
1067 api_surface: "module-lib",
1068 defaults: [
1069 "android_stubs_current_contributions",
1070 "android_system_stubs_current_contributions",
1071 "android_test_stubs_current_contributions",
1072 "android_module_lib_stubs_current_contributions",
1073 ],
1074 libs: [
1075 "android_module_lib_stubs_current_full.from-text",
1076 "stub-annotations",
1077 ],
1078 api_contributions: [
1079 "test-api-stubs-docs-non-updatable.api.contribution",
1080 ],
1081
1082 // This module is only used to build android-non-updatable.stubs.test_module_lib
1083 // and other modules should not depend on this module.
1084 visibility: [
1085 "//visibility:private",
1086 ],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001087 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001088 stubs_type: "everything",
Jihoon Kang4683b142023-10-05 23:42:51 +00001089}
1090
1091java_api_library {
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001092 name: "android_system_server_stubs_current.from-text",
1093 api_surface: "system-server",
1094 api_contributions: [
1095 "services-non-updatable-stubs.api.contribution",
1096 ],
1097 libs: [
1098 "android_module_lib_stubs_current.from-text",
1099 "stub-annotations",
1100 ],
1101 static_libs: [
1102 "android_module_lib_stubs_current.from-text",
1103 ],
1104 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +00001105 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +00001106 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +00001107}
1108
Anton Hansson36bc27c2021-09-14 15:45:13 +01001109////////////////////////////////////////////////////////////////////////
1110// api-versions.xml generation, for public and system. This API database
1111// also contains the android.test.* APIs.
1112////////////////////////////////////////////////////////////////////////
1113
1114java_library {
1115 name: "android_stubs_current_with_test_libs",
1116 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001117 "android_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +01001118 "android.test.base.stubs",
1119 "android.test.mock.stubs",
1120 "android.test.runner.stubs",
1121 ],
1122 defaults: ["android.jar_defaults"],
1123 visibility: [
1124 "//visibility:override",
1125 "//visibility:private",
1126 ],
1127}
1128
1129java_library {
1130 name: "android_system_stubs_current_with_test_libs",
1131 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001132 "android_system_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +01001133 "android.test.base.stubs.system",
1134 "android.test.mock.stubs.system",
1135 "android.test.runner.stubs.system",
1136 ],
1137 defaults: ["android.jar_defaults"],
1138 visibility: [
1139 "//visibility:override",
1140 "//visibility:private",
1141 ],
1142}
1143
Cole Faustdcda3702022-10-04 14:46:35 -07001144java_library {
1145 name: "android_module_stubs_current_with_test_libs",
1146 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001147 "android_module_lib_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -07001148 "android.test.base.stubs",
1149 "android.test.mock.stubs",
1150 "android.test.runner.stubs",
1151 ],
1152 defaults: ["android.jar_defaults"],
1153 visibility: [
1154 "//visibility:override",
1155 "//visibility:private",
1156 ],
1157}
1158
1159java_library {
1160 name: "android_system_server_stubs_current_with_test_libs",
1161 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001162 "android_system_server_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -07001163 "android.test.base.stubs.system",
1164 "android.test.mock.stubs.system",
1165 "android.test.runner.stubs.system",
1166 ],
1167 defaults: ["android.jar_defaults"],
1168 visibility: [
1169 "//visibility:override",
1170 "//visibility:private",
1171 ],
1172}
1173
Paul Duffin0834ea72024-05-02 12:09:51 +01001174// Defaults for `droidstubs` modules that generate `api-versions.xml` files for
1175// the various API surfaces.
1176stubs_defaults {
1177 name: "api_versions_base_defaults",
1178 defaults_visibility: ["//visibility:private"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001179 generate_stubs: false,
1180 api_levels_annotations_enabled: true,
1181 api_levels_annotations_dirs: [
1182 "sdk-dir",
1183 "api-versions-jars-dir",
1184 ],
Paul Duffin0834ea72024-05-02 12:09:51 +01001185}
1186
1187// Defaults for `droidstubs` modules that generate complete `api-versions.xml`
1188// files, i.e. include SDK extensions.
1189stubs_defaults {
1190 name: "api_versions_complete_defaults",
1191 defaults_visibility: ["//visibility:private"],
1192 defaults: ["api_versions_base_defaults"],
MÃ¥rten Kongstad54845332022-09-06 15:50:37 +02001193 extensions_info_file: ":sdk-extensions-info",
Paul Duffin0834ea72024-05-02 12:09:51 +01001194}
1195
1196// Produces an `api-versions.xml` file that includes up-to-date information
1197// about all the public APIs, both updatable and non-updatable and historic
1198// information about all previous dessert and SDK extension releases.
1199droidstubs {
1200 name: "api_versions_public",
1201 defaults: ["api_versions_complete_defaults"],
1202 srcs: [":android_stubs_current_with_test_libs{.jar}"],
1203 api_levels_sdk_type: "public",
Anton Hanssonca6e67a2023-03-03 17:55:09 +00001204 visibility: ["//frameworks/base"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001205}
1206
Paul Duffin0834ea72024-05-02 12:09:51 +01001207// Produces an `api-versions.xml` file that includes up-to-date information
1208// about all the system APIs, both updatable and non-updatable and historic
1209// information about all previous dessert and SDK extension releases.
Anton Hansson36bc27c2021-09-14 15:45:13 +01001210droidstubs {
1211 name: "api_versions_system",
Paul Duffin0834ea72024-05-02 12:09:51 +01001212 defaults: ["api_versions_complete_defaults"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001213 srcs: [":android_system_stubs_current_with_test_libs{.jar}"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001214 api_levels_sdk_type: "system",
Paul Duffin75f63602024-01-05 18:15:59 +00001215 dists: [
1216 // Make the api-versions.xml file for the system API available in the
1217 // sdk build target.
1218 {
1219 targets: ["sdk"],
1220 dest: "api-versions_system.xml",
1221 tag: ".api_versions.xml",
1222 },
1223 ],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001224}
1225
Paul Duffin0834ea72024-05-02 12:09:51 +01001226// Defaults for `droidstubs` modules that generate `api-versions.xml` files that
1227// only include non-updatable code, i.e. for platform API only, not SDK
1228// extensions.
1229stubs_defaults {
1230 name: "api_versions_non_updatable_defaults",
1231 defaults_visibility: ["//visibility:private"],
1232 defaults: ["api_versions_base_defaults"],
Cole Faustbf4ce752023-02-08 12:46:06 -08001233 // this only has the non-updatable portions of the module lib sdk,
1234 // which can reference classes from updatable apexes, so remove references to them
1235 // from this api_versions file.
1236 flags: ["--remove-missing-class-references-in-api-levels"],
Cole Faust1deced12023-02-15 13:24:18 -08001237 // extensions_info_file is purposefully omitted, because this module should just be
1238 // the non-updatable portions of the sdk, and extension sdks are updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001239}
1240
Paul Duffin0834ea72024-05-02 12:09:51 +01001241// Produces an `api-versions.xml` file that includes up-to-date information
1242// about only the non-updatable module-lib APIs and historic information about
1243// all previous dessert and SDK extension releases. That historic information
1244// may include information about APIs that were previously not-updatable which
1245// have since become updatable.
1246droidstubs {
1247 name: "api_versions_module_lib",
1248 defaults: ["api_versions_non_updatable_defaults"],
1249 srcs: [":android_module_stubs_current_with_test_libs{.jar}"],
1250 api_levels_sdk_type: "module-lib",
1251}
1252
Paul Duffinfb5e07d2024-05-02 14:51:41 +01001253// Create a single jar containing the whole module-lib API surface.
1254// This is needed because Metalava only consumes the first jar file it is given
1255// and ignores the rest.
1256java_library {
1257 name: "android_module_stubs_complete_current_with_test_libs",
1258 static_libs: [
1259 "android_module_stubs_current_with_test_libs",
1260 "framework-updatable-stubs-module_libs_api-exportable",
1261 ],
1262 defaults: ["android.jar_defaults"],
1263 visibility: [
1264 "//visibility:override",
1265 "//visibility:private",
1266 ],
1267}
1268
1269// Produces an `api-versions.xml` file that includes up-to-date information
1270// about all the module-lib APIs, both updatable and non-updatable and historic
1271// information about all previous dessert and SDK extension releases.
1272droidstubs {
1273 name: "api_versions_module_lib_complete",
1274 defaults: ["api_versions_complete_defaults"],
1275 srcs: [":android_module_stubs_complete_current_with_test_libs{.jar}"],
1276 api_levels_sdk_type: "module-lib",
1277}
1278
Paul Duffin0834ea72024-05-02 12:09:51 +01001279// Produces an `api-versions.xml` file that includes up-to-date information
1280// about only the non-updatable system-server APIs and historic information
1281// about all previous dessert and SDK extension releases. That historic
1282// information may include information about APIs that were previously
1283// not-updatable which have since become updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001284droidstubs {
1285 name: "api_versions_system_server",
Paul Duffin0834ea72024-05-02 12:09:51 +01001286 defaults: ["api_versions_non_updatable_defaults"],
Cole Faustdcda3702022-10-04 14:46:35 -07001287 srcs: [":android_system_server_stubs_current_with_test_libs{.jar}"],
Cole Faustdcda3702022-10-04 14:46:35 -07001288 api_levels_sdk_type: "system-server",
Cole Faustdcda3702022-10-04 14:46:35 -07001289}
1290
Paul Duffinfb5e07d2024-05-02 14:51:41 +01001291// Create a single jar containing the whole system-server API surface.
1292// This is needed because Metalava only consumes the first jar file it is given
1293// and ignores the rest.
1294java_library {
1295 name: "android_system_server_stubs_complete_current_with_test_libs",
1296 static_libs: [
1297 "android_system_server_stubs_current_with_test_libs",
1298 // system-server extends module-lib but libraries which only service-*
1299 // libraries provided system-server APIs, so include module-lib APIs for
1300 // the others, e.g. framework-* libraries.
1301 "framework-updatable-stubs-module_libs_api-exportable",
1302 "framework-updatable-stubs-system_server_api-exportable",
1303 ],
1304 defaults: ["android.jar_defaults"],
1305 visibility: [
1306 "//visibility:override",
1307 "//visibility:private",
1308 ],
1309}
1310
1311// Produces an `api-versions.xml` file that includes up-to-date information
1312// about all the system-server APIs, both updatable and non-updatable and
1313// historic information about all previous dessert and SDK extension releases.
1314droidstubs {
1315 name: "api_versions_system_server_complete",
1316 defaults: ["api_versions_complete_defaults"],
1317 srcs: [":android_system_server_stubs_complete_current_with_test_libs{.jar}"],
1318 api_levels_sdk_type: "system-server",
1319}
1320
Jiyong Park7fb4b182019-12-20 14:35:43 +09001321/////////////////////////////////////////////////////////////////////
1322// hwbinder.stubs provides APIs required for building HIDL Java
1323// libraries.
1324/////////////////////////////////////////////////////////////////////
1325
1326droidstubs {
1327 name: "hwbinder-stubs-docs",
Anton Hansson23f319f2023-03-03 16:04:02 +00001328 srcs: [":hwbinder-stubs-srcs"],
Colin Cross037d7fb2021-03-25 17:01:55 -07001329 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001330 installable: false,
1331 sdk_version: "core_platform",
1332 annotations_enabled: true,
Anton Hansson48ee95e2020-05-02 17:49:26 +01001333 previous_api: ":android.api.public.latest",
Jiyong Park7fb4b182019-12-20 14:35:43 +09001334 merge_annotations_dirs: [
1335 "metalava-manual",
1336 ],
Anton Hansson84a0e712023-10-23 09:17:45 +00001337 flags: priv_apps,
Jiyong Park7fb4b182019-12-20 14:35:43 +09001338}
1339
Anton Hanssonbbdd64b2021-04-26 18:47:39 +01001340java_library {
Jiyong Park7fb4b182019-12-20 14:35:43 +09001341 name: "hwbinder.stubs",
1342 sdk_version: "core_current",
Colin Cross037d7fb2021-03-25 17:01:55 -07001343 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001344 srcs: [
1345 ":hwbinder-stubs-docs",
1346 ],
Anton Hansson86925682021-04-14 14:54:43 +01001347 visibility: ["//visibility:public"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001348}