blob: c1add03fa31ae6d74ceb28132e6d1bf4d50af8d6 [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
Anton Hansson76d3db42020-04-09 14:16:37 +010030droidstubs {
31 name: "api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +000032 defaults: [
33 "android-non-updatable-stubs-defaults",
34 "module-classpath-stubs-defaults",
35 ],
Anton Hansson76d3db42020-04-09 14:16:37 +010036 check_api: {
37 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +000038 api_file: ":non-updatable-current.txt",
39 removed_api_file: ":non-updatable-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +010040 },
Anton Hansson37e102e2020-10-05 16:42:40 +010041 last_released: {
42 api_file: ":android-non-updatable.api.public.latest",
43 removed_api_file: ":android-non-updatable-removed.api.public.latest",
Anton Hansson7f3393d2021-04-12 11:56:53 +010044 baseline_file: ":android-non-updatable-incompatibilities.api.public.latest",
Anton Hansson37e102e2020-10-05 16:42:40 +010045 },
Anton Hansson76d3db42020-04-09 14:16:37 +010046 api_lint: {
47 enabled: true,
Anton Hansson4f90aa52021-06-04 22:23:59 +010048 new_since: ":android.api.public.latest",
Adrian Roos440f3cf2023-09-20 10:03:31 +000049 baseline_file: ":non-updatable-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +010050 },
51 },
Anton Hansson85785fe2021-01-20 20:23:34 +000052 dists: [
53 {
Anton Hanssondd8ef672022-01-04 08:53:19 +000054 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +000055 dir: "apistubs/android/public/api",
56 dest: "android-non-updatable.txt",
57 tag: ".api.txt",
58 },
59 {
Anton Hanssondd8ef672022-01-04 08:53:19 +000060 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +000061 dir: "apistubs/android/public/api",
62 dest: "android-non-updatable-removed.txt",
63 tag: ".removed-api.txt",
64 },
65 ],
Jihoon Kang866b9b7a2023-09-20 22:28:05 +000066 api_surface: "public",
Anton Hansson76d3db42020-04-09 14:16:37 +010067}
68
Anton Hansson84a0e712023-10-23 09:17:45 +000069priv_apps = [
70 "--show-annotation android.annotation.SystemApi\\(" +
71 "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
72 "\\)",
73]
Anton Hansson2feb3f12020-11-13 11:44:32 +000074
Anton Hansson84a0e712023-10-23 09:17:45 +000075priv_apps_in_stubs = [
76 "--show-for-stub-purposes-annotation android.annotation.SystemApi\\(" +
77 "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
78 "\\)",
79]
Anton Hansson2feb3f12020-11-13 11:44:32 +000080
Anton Hansson84a0e712023-10-23 09:17:45 +000081test = ["--show-annotation android.annotation.TestApi"]
Anton Hansson2feb3f12020-11-13 11:44:32 +000082
Anton Hansson84a0e712023-10-23 09:17:45 +000083module_libs = [
84 "--show-annotation android.annotation.SystemApi\\(" +
85 "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES" +
86 "\\)",
87]
Anton Hansson81969c22020-02-03 20:45:56 +000088
Jiyong Park7fb4b182019-12-20 14:35:43 +090089droidstubs {
Anton Hansson76d3db42020-04-09 14:16:37 +010090 name: "system-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +000091 defaults: [
92 "android-non-updatable-stubs-defaults",
93 "module-classpath-stubs-defaults",
94 ],
Anton Hansson84a0e712023-10-23 09:17:45 +000095 flags: priv_apps,
Anton Hansson76d3db42020-04-09 14:16:37 +010096 check_api: {
97 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +000098 api_file: ":non-updatable-system-current.txt",
99 removed_api_file: ":non-updatable-system-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100100 },
Anton Hansson37e102e2020-10-05 16:42:40 +0100101 last_released: {
102 api_file: ":android-non-updatable.api.system.latest",
103 removed_api_file: ":android-non-updatable-removed.api.system.latest",
Anton Hansson240ee482021-04-14 12:52:00 +0100104 baseline_file: ":android-non-updatable-incompatibilities.api.system.latest",
Anton Hansson37e102e2020-10-05 16:42:40 +0100105 },
Anton Hansson76d3db42020-04-09 14:16:37 +0100106 api_lint: {
107 enabled: true,
Anton Hansson4f90aa52021-06-04 22:23:59 +0100108 new_since: ":android.api.system.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000109 baseline_file: ":non-updatable-system-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100110 },
111 },
Anton Hansson85785fe2021-01-20 20:23:34 +0000112 dists: [
113 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000114 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000115 dir: "apistubs/android/system/api",
116 dest: "android-non-updatable.txt",
117 tag: ".api.txt",
118 },
119 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000120 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000121 dir: "apistubs/android/system/api",
122 dest: "android-non-updatable-removed.txt",
123 tag: ".removed-api.txt",
124 },
125 ],
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000126 api_surface: "system",
Anton Hansson76d3db42020-04-09 14:16:37 +0100127}
128
129droidstubs {
Anton Hansson022aac52020-11-05 10:45:13 +0000130 name: "test-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000131 defaults: [
132 "android-non-updatable-stubs-defaults",
133 "module-classpath-stubs-defaults",
134 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000135 flags: test + priv_apps_in_stubs,
Jiyong Park7fb4b182019-12-20 14:35:43 +0900136 check_api: {
137 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000138 api_file: ":non-updatable-test-current.txt",
139 removed_api_file: ":non-updatable-test-removed.txt",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900140 },
141 api_lint: {
142 enabled: true,
Adrian Roos440f3cf2023-09-20 10:03:31 +0000143 new_since: ":android.api.test.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000144 baseline_file: ":non-updatable-test-lint-baseline.txt",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900145 },
146 },
Anton Hansson85785fe2021-01-20 20:23:34 +0000147 dists: [
148 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000149 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000150 dir: "apistubs/android/test/api",
151 dest: "android.txt",
152 tag: ".api.txt",
153 },
154 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000155 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000156 dir: "apistubs/android/test/api",
157 dest: "removed.txt",
158 tag: ".removed-api.txt",
159 },
160 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000161 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000162 dir: "apistubs/android/test/api",
163 dest: "android-non-updatable.txt",
164 tag: ".api.txt",
165 },
166 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000167 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000168 dir: "apistubs/android/test/api",
169 dest: "android-non-updatable-removed.txt",
170 tag: ".removed-api.txt",
171 },
172 ],
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000173 api_surface: "test",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900174}
175
Jiyong Parke3095162019-12-20 15:30:28 +0900176droidstubs {
Anton Hansson76d3db42020-04-09 14:16:37 +0100177 name: "module-lib-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000178 defaults: [
179 "android-non-updatable-stubs-defaults",
180 "module-classpath-stubs-defaults",
181 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000182 flags: priv_apps_in_stubs + module_libs,
Anton Hansson76d3db42020-04-09 14:16:37 +0100183 check_api: {
184 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000185 api_file: ":non-updatable-module-lib-current.txt",
186 removed_api_file: ":non-updatable-module-lib-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100187 },
Anton Hanssonc3ef1f562020-10-07 14:55:36 +0100188 last_released: {
189 api_file: ":android-non-updatable.api.module-lib.latest",
190 removed_api_file: ":android-non-updatable-removed.api.module-lib.latest",
Junyu Lai2dbb1772022-01-12 17:38:02 +0000191 baseline_file: ":android-non-updatable-incompatibilities.api.module-lib.latest",
Anton Hanssonc3ef1f562020-10-07 14:55:36 +0100192 },
Anton Hansson76d3db42020-04-09 14:16:37 +0100193 api_lint: {
194 enabled: true,
Anton Hansson4f90aa52021-06-04 22:23:59 +0100195 new_since: ":android.api.module-lib.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000196 baseline_file: ":non-updatable-module-lib-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100197 },
198 },
Anton Hansson85785fe2021-01-20 20:23:34 +0000199 dists: [
200 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000201 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000202 dir: "apistubs/android/module-lib/api",
203 dest: "android-non-updatable.txt",
204 tag: ".api.txt",
205 },
206 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000207 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000208 dir: "apistubs/android/module-lib/api",
209 dest: "android-non-updatable-removed.txt",
210 tag: ".removed-api.txt",
211 },
212 ],
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000213 api_surface: "module-lib",
Anton Hansson76d3db42020-04-09 14:16:37 +0100214}
Anton Hansson81969c22020-02-03 20:45:56 +0000215
Jiyong Parke3095162019-12-20 15:30:28 +0900216/////////////////////////////////////////////////////////////////////
Jiyong Park7fb4b182019-12-20 14:35:43 +0900217// android_*_stubs_current modules are the stubs libraries compiled
Anton Hansson2feb3f12020-11-13 11:44:32 +0000218// from stub sources
Jiyong Park7fb4b182019-12-20 14:35:43 +0900219/////////////////////////////////////////////////////////////////////
220
221java_defaults {
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000222 name: "android.jar_defaults",
223 sdk_version: "none",
224 system_modules: "none",
225 java_version: "1.8",
226 compile_dex: true,
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000227 visibility: ["//visibility:public"],
Jihoon Kangdaa35302024-02-12 23:18:52 +0000228 is_stubs_module: true,
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000229}
230
231java_defaults {
Jihoon Kang491c7082023-06-15 18:37:01 +0000232 name: "android-non-updatable_defaults",
Anton Hanssonfbd32f32020-04-09 14:16:37 +0100233 sdk_version: "none",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900234 system_modules: "none",
235 java_version: "1.8",
236 compile_dex: true,
Jihoon Kangdaa35302024-02-12 23:18:52 +0000237 is_stubs_module: true,
Jihoon Kang491c7082023-06-15 18:37:01 +0000238}
239
240java_defaults {
241 name: "android-non-updatable_from_source_defaults",
242 libs: ["stub-annotations"],
243 static_libs: ["framework-res-package-jar"], // Export package of framework-res
Jihoon Kang059b9492023-12-29 00:40:34 +0000244}
245
246java_defaults {
247 name: "android-non-updatable_exportable_from_source_defaults",
Anton Hanssona4108912021-04-09 13:40:11 +0100248 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000249 targets: ["sdk"],
Anton Hanssona4108912021-04-09 13:40:11 +0100250 tag: ".jar",
251 dest: "android-non-updatable.jar",
Anton Hansson240ee482021-04-14 12:52:00 +0100252 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900253}
254
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100255java_library {
Anton Hanssona4748cd2021-04-09 10:16:19 +0100256 name: "android-non-updatable.stubs",
Jihoon Kang491c7082023-06-15 18:37:01 +0000257 defaults: ["android-non-updatable_defaults"],
258 static_libs: [
259 "android-non-updatable.stubs.from-source",
260 ],
261 product_variables: {
262 build_from_text_stub: {
263 static_libs: [
264 "android-non-updatable.stubs.from-text",
265 ],
266 exclude_static_libs: [
267 "android-non-updatable.stubs.from-source",
268 ],
269 },
270 },
271}
272
273java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000274 name: "android-non-updatable.stubs.exportable",
275 defaults: ["android-non-updatable_defaults"],
276 static_libs: [
277 "android-non-updatable.stubs.exportable.from-source",
278 ],
279}
280
281java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000282 name: "android-non-updatable.stubs.system",
283 defaults: ["android-non-updatable_defaults"],
284 static_libs: [
285 "android-non-updatable.stubs.system.from-source",
286 ],
287 product_variables: {
288 build_from_text_stub: {
289 static_libs: [
290 "android-non-updatable.stubs.system.from-text",
291 ],
292 exclude_static_libs: [
293 "android-non-updatable.stubs.system.from-source",
294 ],
295 },
296 },
297}
298
299java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000300 name: "android-non-updatable.stubs.exportable.system",
301 defaults: ["android-non-updatable_defaults"],
302 static_libs: [
303 "android-non-updatable.stubs.exportable.system.from-source",
304 ],
305}
306
307java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000308 name: "android-non-updatable.stubs.module_lib",
309 defaults: ["android-non-updatable_defaults"],
310 static_libs: [
311 "android-non-updatable.stubs.module_lib.from-source",
312 ],
313 product_variables: {
314 build_from_text_stub: {
315 static_libs: [
316 "android-non-updatable.stubs.module_lib.from-text",
317 ],
318 exclude_static_libs: [
319 "android-non-updatable.stubs.module_lib.from-source",
320 ],
321 },
322 },
323}
324
325java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000326 name: "android-non-updatable.stubs.exportable.module_lib",
327 defaults: ["android-non-updatable_defaults"],
328 static_libs: [
329 "android-non-updatable.stubs.exportable.module_lib.from-source",
330 ],
331}
332
333java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000334 name: "android-non-updatable.stubs.test",
335 defaults: ["android-non-updatable_defaults"],
336 static_libs: [
337 "android-non-updatable.stubs.test.from-source",
338 ],
339 product_variables: {
340 build_from_text_stub: {
341 static_libs: [
342 "android-non-updatable.stubs.test.from-text",
343 ],
344 exclude_static_libs: [
345 "android-non-updatable.stubs.test.from-source",
346 ],
347 },
348 },
349}
350
351java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000352 name: "android-non-updatable.stubs.exportable.test",
353 defaults: ["android-non-updatable_defaults"],
354 static_libs: [
355 "android-non-updatable.stubs.exportable.test.from-source",
356 ],
357}
358
359java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000360 name: "android-non-updatable.stubs.from-source",
361 defaults: [
362 "android-non-updatable_defaults",
363 "android-non-updatable_from_source_defaults",
364 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100365 srcs: [":api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000366 libs: ["all-modules-public-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000367}
368
369java_library {
370 name: "android-non-updatable.stubs.exportable.from-source",
371 defaults: [
372 "android-non-updatable_defaults",
373 "android-non-updatable_from_source_defaults",
374 "android-non-updatable_exportable_from_source_defaults",
375 ],
376 srcs: [":api-stubs-docs-non-updatable{.exportable}"],
377 libs: ["all-modules-public-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100378 dist: {
379 dir: "apistubs/android/public",
380 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100381}
382
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100383java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000384 name: "android-non-updatable.stubs.system.from-source",
385 defaults: [
386 "android-non-updatable_defaults",
387 "android-non-updatable_from_source_defaults",
388 ],
Anton Hansson240ee482021-04-14 12:52:00 +0100389 srcs: [":system-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000390 libs: ["all-modules-system-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000391}
392
393java_library {
394 name: "android-non-updatable.stubs.exportable.system.from-source",
395 defaults: [
396 "android-non-updatable_defaults",
397 "android-non-updatable_from_source_defaults",
398 "android-non-updatable_exportable_from_source_defaults",
399 ],
400 srcs: [":system-api-stubs-docs-non-updatable{.exportable}"],
401 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100402 dist: {
403 dir: "apistubs/android/system",
404 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100405}
406
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100407java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000408 name: "android-non-updatable.stubs.module_lib.from-source",
409 defaults: [
410 "android-non-updatable_defaults",
411 "android-non-updatable_from_source_defaults",
412 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100413 srcs: [":module-lib-api-stubs-docs-non-updatable"],
Anton Hansson648b0db2023-11-06 19:24:42 +0000414 libs: non_updatable_api_deps_on_modules,
Jihoon Kang059b9492023-12-29 00:40:34 +0000415}
416
417java_library {
418 name: "android-non-updatable.stubs.exportable.module_lib.from-source",
419 defaults: [
420 "android-non-updatable_defaults",
421 "android-non-updatable_from_source_defaults",
422 "android-non-updatable_exportable_from_source_defaults",
423 ],
424 srcs: [":module-lib-api-stubs-docs-non-updatable{.exportable}"],
425 libs: non_updatable_api_deps_on_modules,
Anton Hanssona4108912021-04-09 13:40:11 +0100426 dist: {
427 dir: "apistubs/android/module-lib",
428 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100429}
430
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100431java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000432 name: "android-non-updatable.stubs.test.from-source",
433 defaults: [
434 "android-non-updatable_defaults",
435 "android-non-updatable_from_source_defaults",
436 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100437 srcs: [":test-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000438 libs: ["all-modules-system-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000439}
440
441java_library {
442 name: "android-non-updatable.stubs.exportable.test.from-source",
443 defaults: [
444 "android-non-updatable_defaults",
445 "android-non-updatable_from_source_defaults",
446 "android-non-updatable_exportable_from_source_defaults",
447 ],
448 srcs: [":test-api-stubs-docs-non-updatable{.exportable}"],
449 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100450 dist: {
451 dir: "apistubs/android/test",
452 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100453}
454
455java_defaults {
Jihoon Kang491c7082023-06-15 18:37:01 +0000456 name: "android-non-updatable_from_text_defaults",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000457 static_libs: ["framework-res-package-jar"],
458 libs: ["stub-annotations"],
459}
460
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000461java_defaults {
462 name: "android-non-updatable_everything_from_text_defaults",
463 defaults: [
464 "android-non-updatable_from_text_defaults",
465 ],
466 stubs_type: "everything",
467}
468
Jihoon Kang0c101db2023-03-14 07:03:46 +0000469java_api_library {
470 name: "android-non-updatable.stubs.from-text",
471 api_surface: "public",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000472 api_contributions: [
473 "api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000474 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000475 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000476 full_api_surface_stub: "android_stubs_current.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000477}
478
479java_api_library {
480 name: "android-non-updatable.stubs.system.from-text",
481 api_surface: "system",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000482 api_contributions: [
483 "api-stubs-docs-non-updatable.api.contribution",
484 "system-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000485 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000486 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000487 full_api_surface_stub: "android_system_stubs_current.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000488}
489
490java_api_library {
491 name: "android-non-updatable.stubs.test.from-text",
492 api_surface: "test",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000493 api_contributions: [
494 "api-stubs-docs-non-updatable.api.contribution",
495 "system-api-stubs-docs-non-updatable.api.contribution",
496 "test-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000497 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000498 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000499 full_api_surface_stub: "android_test_stubs_current.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000500}
501
502java_api_library {
503 name: "android-non-updatable.stubs.module_lib.from-text",
504 api_surface: "module_lib",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000505 api_contributions: [
506 "api-stubs-docs-non-updatable.api.contribution",
507 "system-api-stubs-docs-non-updatable.api.contribution",
508 "module-lib-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000509 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000510 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000511 full_api_surface_stub: "android_module_lib_stubs_current_full.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000512}
513
Jihoon Kang4683b142023-10-05 23:42:51 +0000514// This module generates a stub jar that is a union of the test and module lib
515// non-updatable api contributions. Modules should not depend on the stub jar
516// generated from this module, as this module is strictly used for hiddenapi only.
517java_api_library {
518 name: "android-non-updatable.stubs.test_module_lib",
519 api_surface: "module_lib",
520 api_contributions: [
521 "api-stubs-docs-non-updatable.api.contribution",
522 "system-api-stubs-docs-non-updatable.api.contribution",
523 "test-api-stubs-docs-non-updatable.api.contribution",
524 "module-lib-api-stubs-docs-non-updatable.api.contribution",
525 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000526 defaults: ["android-non-updatable_everything_from_text_defaults"],
Jihoon Kang4683b142023-10-05 23:42:51 +0000527 full_api_surface_stub: "android_test_module_lib_stubs_current.from-text",
528
529 // This module is only used for hiddenapi, and other modules should not
530 // depend on this module.
531 visibility: ["//visibility:private"],
532}
533
Jihoon Kang0c101db2023-03-14 07:03:46 +0000534java_defaults {
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000535 name: "android_stubs_dists_default",
536 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000537 targets: ["sdk"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000538 tag: ".jar",
539 dest: "android.jar",
540 },
Anton Hansson86925682021-04-14 14:54:43 +0100541 defaults_visibility: ["//frameworks/base/services"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000542}
543
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100544java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000545 name: "android_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000546 static_libs: [
547 "all-modules-public-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100548 "android-non-updatable.stubs",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100549 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100550 ],
Anton Hansson65057af2021-04-14 18:52:08 +0100551 defaults: ["android.jar_defaults"],
Jiyong Park7fb4b182019-12-20 14:35:43 +0900552}
553
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100554java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000555 name: "android_stubs_current_exportable.from-source",
556 static_libs: [
557 "all-modules-public-stubs-exportable",
558 "android-non-updatable.stubs.exportable",
559 "private-stub-annotations-jar",
560 ],
561 defaults: ["android.jar_defaults"],
562}
563
564java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000565 name: "android_system_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000566 static_libs: [
567 "all-modules-system-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100568 "android-non-updatable.stubs.system",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100569 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100570 ],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000571 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100572 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000573 ],
574 visibility: ["//frameworks/base/services"],
575}
576
577java_library {
578 name: "android_system_stubs_current_exportable.from-source",
579 static_libs: [
580 "all-modules-system-stubs-exportable",
581 "android-non-updatable.stubs.exportable.system",
582 "private-stub-annotations-jar",
583 ],
584 defaults: [
585 "android.jar_defaults",
Anton Hanssonc3002e52020-11-18 18:23:55 +0000586 "android_stubs_dists_default",
587 ],
588 dist: {
589 dir: "apistubs/android/system",
590 },
591 dists: [
592 {
593 // Legacy dist path
Anton Hanssondd8ef672022-01-04 08:53:19 +0000594 targets: ["sdk"],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000595 tag: ".jar",
596 dest: "android_system.jar",
597 },
598 ],
Anton Hansson76d3db42020-04-09 14:16:37 +0100599}
600
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100601java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000602 name: "android_test_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000603 static_libs: [
Nikita Ioffe5593fbb2022-12-01 14:52:34 +0000604 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
605 // include the SystemApi of framework-non-updatable-sources.
606 "all-updatable-modules-system-stubs",
607 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
608 "all-non-updatable-modules-test-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100609 "android-non-updatable.stubs.test",
Anton Hansson7ce31c12020-10-15 18:38:49 +0100610 "private-stub-annotations-jar",
611 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000612 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100613 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000614 ],
615 visibility: ["//frameworks/base/services"],
616}
617
618java_library {
619 name: "android_test_stubs_current_exportable.from-source",
620 static_libs: [
621 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
622 // include the SystemApi of framework-non-updatable-sources.
623 "all-updatable-modules-system-stubs-exportable",
624 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
625 "all-non-updatable-modules-test-stubs-exportable",
626 "android-non-updatable.stubs.exportable.test",
627 "private-stub-annotations-jar",
628 ],
629 defaults: [
630 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000631 "android_stubs_dists_default",
632 ],
633 dist: {
634 dir: "apistubs/android/test",
635 },
Jiyong Parke3095162019-12-20 15:30:28 +0900636}
637
Jihoon Kang059b9492023-12-29 00:40:34 +0000638// This module does not need to be copied to dist
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100639java_library {
Mark Whitee35b1382023-08-12 01:31:26 +0000640 name: "android_test_frameworks_core_stubs_current.from-source",
641 static_libs: [
642 "all-updatable-modules-system-stubs",
643 "android-non-updatable.stubs.test",
Mark Whitee35b1382023-08-12 01:31:26 +0000644 ],
645 defaults: [
646 "android.jar_defaults",
Mark Whitee35b1382023-08-12 01:31:26 +0000647 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000648 visibility: ["//frameworks/base/services"],
Mark Whitee35b1382023-08-12 01:31:26 +0000649}
650
651java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000652 name: "android_module_lib_stubs_current.from-source",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000653 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100654 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000655 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100656 static_libs: [
657 "android-non-updatable.stubs.module_lib",
Victor Chang6b107a92021-06-17 23:49:42 +0100658 "art.module.public.api.stubs.module_lib",
Giulio Fiscella68a04112021-11-30 16:32:44 +0000659 "i18n.module.public.api.stubs",
Anton Hanssonb7d532e2021-02-05 11:40:25 +0000660 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000661 visibility: ["//frameworks/base/services"],
662}
663
664java_library {
665 name: "android_module_lib_stubs_current_exportable.from-source",
666 defaults: [
667 "android.jar_defaults",
668 "android_stubs_dists_default",
669 ],
670 static_libs: [
671 "android-non-updatable.stubs.exportable.module_lib",
672 "art.module.public.api.stubs.exportable.module_lib",
673 "i18n.module.public.api.stubs.exportable",
674 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000675 dist: {
676 dir: "apistubs/android/module-lib",
677 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900678}
679
Andrei Oneafaa271a2021-03-17 13:32:51 +0000680java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000681 name: "android_system_server_stubs_current.from-source",
Anton Hansson21fb1082023-03-03 16:22:42 +0000682 defaults: [
683 "android.jar_defaults",
Anton Hansson21fb1082023-03-03 16:22:42 +0000684 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000685 srcs: [":services-non-updatable-stubs"],
686 installable: false,
687 static_libs: [
Jihoon Kang1453baa2023-05-27 05:32:30 +0000688 "android_module_lib_stubs_current.from-source",
Andrei Oneafaa271a2021-03-17 13:32:51 +0000689 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000690 visibility: ["//frameworks/base/services"],
691}
692
693java_library {
694 name: "android_system_server_stubs_current_exportable.from-source",
695 defaults: [
696 "android.jar_defaults",
697 "android_stubs_dists_default",
698 ],
699 srcs: [":services-non-updatable-stubs{.exportable}"],
700 installable: false,
701 static_libs: [
702 "android_module_lib_stubs_current_exportable.from-source",
703 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000704 dist: {
705 dir: "apistubs/android/system-server",
706 },
707}
708
Colin Crosscf87a572022-10-20 14:06:53 -0700709java_library {
710 name: "android_stubs_private_jar",
711 defaults: ["android.jar_defaults"],
712 visibility: [
713 "//visibility:override",
714 "//visibility:private",
715 ],
716 static_libs: [
717 "stable.core.platform.api.stubs",
718 "core-lambda-stubs-for-system-modules",
719 "core-generated-annotation-stubs",
720 "framework",
721 "ext",
722 "framework-res-package-jar",
723 // The order of this matters, it has to be last to provide a
724 // package-private androidx.annotation.RecentlyNonNull without
725 // overriding the public android.annotation.Nullable in framework.jar
726 // with its own package-private android.annotation.Nullable.
727 "private-stub-annotations-jar",
728 ],
Jihoon Kangdaa35302024-02-12 23:18:52 +0000729 is_stubs_module: true,
Colin Crosscf87a572022-10-20 14:06:53 -0700730}
731
732java_genrule {
733 name: "android_stubs_private_hjar",
Colin Crosscf87a572022-10-20 14:06:53 -0700734 srcs: [":android_stubs_private_jar{.hjar}"],
735 out: ["android_stubs_private.jar"],
736 cmd: "cp $(in) $(out)",
737}
738
739java_library {
740 name: "android_stubs_private",
741 defaults: ["android_stubs_dists_default"],
Colin Crosscf87a572022-10-20 14:06:53 -0700742 sdk_version: "none",
743 system_modules: "none",
744 static_libs: ["android_stubs_private_hjar"],
745 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000746 // Add to private_api_stubs dist target for easier packaging by scripts. This module is
747 // useful for creating a platform SDK, which can be packaged in ANDROID_HOME and used from
748 // Gradle, allowing for development of platform apps that make use of hidden APIs.
749 targets: ["private_api_stubs"],
Colin Crosscf87a572022-10-20 14:06:53 -0700750 dir: "apistubs/android/private",
751 },
752}
753
754java_genrule {
755 name: "android_stubs_private_framework_aidl",
Colin Crosscf87a572022-10-20 14:06:53 -0700756 tools: ["sdkparcelables"],
757 srcs: [":android_stubs_private"],
758 out: ["framework.aidl"],
759 cmd: "rm -f $(genDir)/framework.aidl.merged && " +
760 "for i in $(in); do " +
761 " rm -f $(genDir)/framework.aidl.tmp && " +
762 " $(location sdkparcelables) $$i $(genDir)/framework.aidl.tmp && " +
763 " cat $(genDir)/framework.aidl.tmp >> $(genDir)/framework.aidl.merged; " +
764 "done && " +
765 "sort -u $(genDir)/framework.aidl.merged > $(out)",
766 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000767 targets: [
768 "sdk",
769 // Add to private_api_stubs dist target for easier packaging by scripts.
770 // See explanation in the "android_stubs_private" module above.
771 "private_api_stubs",
772 ],
Colin Crosscf87a572022-10-20 14:06:53 -0700773 dir: "apistubs/android/private",
774 },
775}
776
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000777//
778// Java API defaults and libraries for single tree build
779//
780
781java_defaults {
782 name: "stub-annotation-defaults",
783 libs: [
784 "stub-annotations",
785 ],
786 static_libs: [
787 // stub annotations do not contribute to the API surfaces but are statically
788 // linked in the stubs for API surfaces (see frameworks/base/StubLibraries.bp).
789 // This is because annotation processors insist on loading the classes for any
790 // annotations found, thus should exist inside android.jar.
791 "private-stub-annotations-jar",
792 ],
Jihoon Kangdaa35302024-02-12 23:18:52 +0000793 is_stubs_module: true,
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000794}
795
796// Listing of API domains contribution and dependencies per API surfaces
797java_defaults {
798 name: "android_test_stubs_current_contributions",
799 api_surface: "test",
800 api_contributions: [
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000801 "framework-virtualization.stubs.source.test.api.contribution",
Mark White3cc5e002023-08-07 11:18:09 +0000802 "framework-location.stubs.source.test.api.contribution",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000803 ],
804}
805
806java_defaults {
807 name: "android_test_frameworks_core_stubs_current_contributions",
808 api_surface: "test",
809 api_contributions: [
810 "test-api-stubs-docs-non-updatable.api.contribution",
811 ],
812}
813
814java_defaults {
815 name: "android_module_lib_stubs_current_contributions",
816 api_surface: "module-lib",
817 api_contributions: [
818 "api-stubs-docs-non-updatable.api.contribution",
819 "system-api-stubs-docs-non-updatable.api.contribution",
820 "module-lib-api-stubs-docs-non-updatable.api.contribution",
821 "art.module.public.api.stubs.source.api.contribution",
822 "art.module.public.api.stubs.source.system.api.contribution",
823 "art.module.public.api.stubs.source.module_lib.api.contribution",
824 "i18n.module.public.api.stubs.source.api.contribution",
825 "i18n.module.public.api.stubs.source.system.api.contribution",
826 "i18n.module.public.api.stubs.source.module_lib.api.contribution",
827 ],
828}
829
830// Java API library definitions per API surface
831java_api_library {
832 name: "android_stubs_current.from-text",
833 api_surface: "public",
834 defaults: [
835 // This module is dynamically created at frameworks/base/api/api.go
836 // instead of being written out, in order to minimize edits in the codebase
837 // when there is a change in the list of modules.
838 // that contributes to an api surface.
839 "android_stubs_current_contributions",
840 "stub-annotation-defaults",
841 ],
842 api_contributions: [
843 "api-stubs-docs-non-updatable.api.contribution",
844 ],
845 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000846 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000847 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000848}
849
850java_api_library {
851 name: "android_system_stubs_current.from-text",
852 api_surface: "system",
853 defaults: [
854 "android_stubs_current_contributions",
855 "android_system_stubs_current_contributions",
856 "stub-annotation-defaults",
857 ],
858 api_contributions: [
859 "api-stubs-docs-non-updatable.api.contribution",
860 "system-api-stubs-docs-non-updatable.api.contribution",
861 ],
862 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000863 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000864 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000865}
866
867java_api_library {
868 name: "android_test_stubs_current.from-text",
869 api_surface: "test",
870 defaults: [
871 "android_stubs_current_contributions",
872 "android_system_stubs_current_contributions",
873 "android_test_stubs_current_contributions",
874 "stub-annotation-defaults",
875 ],
876 api_contributions: [
877 "api-stubs-docs-non-updatable.api.contribution",
878 "system-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang1c5022b2023-09-20 22:02:29 +0000879 "test-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000880 ],
881 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000882 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000883 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000884}
885
886java_api_library {
887 name: "android_test_frameworks_core_stubs_current.from-text",
888 api_surface: "test",
889 defaults: [
890 "android_stubs_current_contributions",
891 "android_system_stubs_current_contributions",
892 "android_test_frameworks_core_stubs_current_contributions",
Jihoon Kangbeeb35a2023-10-17 22:22:24 +0000893 ],
894 libs: [
895 "stub-annotations",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000896 ],
897 api_contributions: [
898 "api-stubs-docs-non-updatable.api.contribution",
899 "system-api-stubs-docs-non-updatable.api.contribution",
900 ],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000901 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000902 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000903}
904
905java_api_library {
906 name: "android_module_lib_stubs_current_full.from-text",
907 api_surface: "module-lib",
908 defaults: [
909 "android_stubs_current_contributions",
910 "android_system_stubs_current_contributions",
911 "android_module_lib_stubs_current_contributions_full",
912 ],
913 libs: [
914 "stub-annotations",
915 ],
916 api_contributions: [
917 "api-stubs-docs-non-updatable.api.contribution",
918 "system-api-stubs-docs-non-updatable.api.contribution",
919 "module-lib-api-stubs-docs-non-updatable.api.contribution",
920 ],
921 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000922 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000923 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000924}
925
926java_api_library {
927 name: "android_module_lib_stubs_current.from-text",
928 api_surface: "module-lib",
929 defaults: [
930 "android_module_lib_stubs_current_contributions",
931 ],
932 libs: [
933 "android_module_lib_stubs_current_full.from-text",
934 "stub-annotations",
935 ],
936 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000937 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000938 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000939}
940
941java_api_library {
Jihoon Kang4683b142023-10-05 23:42:51 +0000942 name: "android_test_module_lib_stubs_current.from-text",
943 api_surface: "module-lib",
944 defaults: [
945 "android_stubs_current_contributions",
946 "android_system_stubs_current_contributions",
947 "android_test_stubs_current_contributions",
948 "android_module_lib_stubs_current_contributions",
949 ],
950 libs: [
951 "android_module_lib_stubs_current_full.from-text",
952 "stub-annotations",
953 ],
954 api_contributions: [
955 "test-api-stubs-docs-non-updatable.api.contribution",
956 ],
957
958 // This module is only used to build android-non-updatable.stubs.test_module_lib
959 // and other modules should not depend on this module.
960 visibility: [
961 "//visibility:private",
962 ],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000963 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000964 stubs_type: "everything",
Jihoon Kang4683b142023-10-05 23:42:51 +0000965}
966
967java_api_library {
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000968 name: "android_system_server_stubs_current.from-text",
969 api_surface: "system-server",
970 api_contributions: [
971 "services-non-updatable-stubs.api.contribution",
972 ],
973 libs: [
974 "android_module_lib_stubs_current.from-text",
975 "stub-annotations",
976 ],
977 static_libs: [
978 "android_module_lib_stubs_current.from-text",
979 ],
980 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000981 enable_validation: false,
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000982 stubs_type: "everything",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000983}
984
Anton Hansson36bc27c2021-09-14 15:45:13 +0100985////////////////////////////////////////////////////////////////////////
986// api-versions.xml generation, for public and system. This API database
987// also contains the android.test.* APIs.
988////////////////////////////////////////////////////////////////////////
989
990java_library {
991 name: "android_stubs_current_with_test_libs",
992 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +0000993 "android_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +0100994 "android.test.base.stubs",
995 "android.test.mock.stubs",
996 "android.test.runner.stubs",
997 ],
998 defaults: ["android.jar_defaults"],
999 visibility: [
1000 "//visibility:override",
1001 "//visibility:private",
1002 ],
1003}
1004
1005java_library {
1006 name: "android_system_stubs_current_with_test_libs",
1007 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001008 "android_system_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +01001009 "android.test.base.stubs.system",
1010 "android.test.mock.stubs.system",
1011 "android.test.runner.stubs.system",
1012 ],
1013 defaults: ["android.jar_defaults"],
1014 visibility: [
1015 "//visibility:override",
1016 "//visibility:private",
1017 ],
1018}
1019
Cole Faustdcda3702022-10-04 14:46:35 -07001020java_library {
1021 name: "android_module_stubs_current_with_test_libs",
1022 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001023 "android_module_lib_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -07001024 "android.test.base.stubs",
1025 "android.test.mock.stubs",
1026 "android.test.runner.stubs",
1027 ],
1028 defaults: ["android.jar_defaults"],
1029 visibility: [
1030 "//visibility:override",
1031 "//visibility:private",
1032 ],
1033}
1034
1035java_library {
1036 name: "android_system_server_stubs_current_with_test_libs",
1037 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001038 "android_system_server_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -07001039 "android.test.base.stubs.system",
1040 "android.test.mock.stubs.system",
1041 "android.test.runner.stubs.system",
1042 ],
1043 defaults: ["android.jar_defaults"],
1044 visibility: [
1045 "//visibility:override",
1046 "//visibility:private",
1047 ],
1048}
1049
Anton Hansson36bc27c2021-09-14 15:45:13 +01001050droidstubs {
1051 name: "api_versions_public",
1052 srcs: [":android_stubs_current_with_test_libs{.jar}"],
1053 generate_stubs: false,
1054 api_levels_annotations_enabled: true,
1055 api_levels_annotations_dirs: [
1056 "sdk-dir",
1057 "api-versions-jars-dir",
1058 ],
Cole Faustdcda3702022-10-04 14:46:35 -07001059 api_levels_sdk_type: "public",
Mårten Kongstad54845332022-09-06 15:50:37 +02001060 extensions_info_file: ":sdk-extensions-info",
Anton Hanssonca6e67a2023-03-03 17:55:09 +00001061 visibility: ["//frameworks/base"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001062}
1063
1064droidstubs {
1065 name: "api_versions_system",
1066 srcs: [":android_system_stubs_current_with_test_libs{.jar}"],
1067 generate_stubs: false,
1068 api_levels_annotations_enabled: true,
1069 api_levels_annotations_dirs: [
1070 "sdk-dir",
1071 "api-versions-jars-dir",
1072 ],
1073 api_levels_sdk_type: "system",
Mårten Kongstad54845332022-09-06 15:50:37 +02001074 extensions_info_file: ":sdk-extensions-info",
Paul Duffin75f63602024-01-05 18:15:59 +00001075 dists: [
1076 // Make the api-versions.xml file for the system API available in the
1077 // sdk build target.
1078 {
1079 targets: ["sdk"],
1080 dest: "api-versions_system.xml",
1081 tag: ".api_versions.xml",
1082 },
1083 ],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001084}
1085
Cole Faustbf4ce752023-02-08 12:46:06 -08001086// This module can be built with:
Cole Faust24e730f2024-01-08 14:11:11 -08001087// m out/soong/.intermediates/frameworks/base/api/api_versions_module_lib/android_common/metalava/api-versions.xml
Cole Faustdcda3702022-10-04 14:46:35 -07001088droidstubs {
1089 name: "api_versions_module_lib",
1090 srcs: [":android_module_stubs_current_with_test_libs{.jar}"],
1091 generate_stubs: false,
1092 api_levels_annotations_enabled: true,
Cole Faustbf4ce752023-02-08 12:46:06 -08001093 // this only has the non-updatable portions of the module lib sdk,
1094 // which can reference classes from updatable apexes, so remove references to them
1095 // from this api_versions file.
1096 flags: ["--remove-missing-class-references-in-api-levels"],
Cole Faustdcda3702022-10-04 14:46:35 -07001097 api_levels_annotations_dirs: [
1098 "sdk-dir",
1099 "api-versions-jars-dir",
1100 ],
1101 api_levels_sdk_type: "module-lib",
Cole Faust1deced12023-02-15 13:24:18 -08001102 // extensions_info_file is purposefully omitted, because this module should just be
1103 // the non-updatable portions of the sdk, and extension sdks are updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001104}
1105
1106droidstubs {
1107 name: "api_versions_system_server",
1108 srcs: [":android_system_server_stubs_current_with_test_libs{.jar}"],
1109 generate_stubs: false,
1110 api_levels_annotations_enabled: true,
Cole Faustbf4ce752023-02-08 12:46:06 -08001111 // this only has the non-updatable portions of the system server sdk,
1112 // which can reference classes from updatable apexes, so remove references to them
1113 // from this api_versions file.
1114 flags: ["--remove-missing-class-references-in-api-levels"],
Cole Faustdcda3702022-10-04 14:46:35 -07001115 api_levels_annotations_dirs: [
1116 "sdk-dir",
1117 "api-versions-jars-dir",
1118 ],
1119 api_levels_sdk_type: "system-server",
Cole Faust1deced12023-02-15 13:24:18 -08001120 // extensions_info_file is purposefully omitted, because this module should just be
1121 // the non-updatable portions of the sdk, and extension sdks are updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001122}
1123
Jiyong Park7fb4b182019-12-20 14:35:43 +09001124/////////////////////////////////////////////////////////////////////
1125// hwbinder.stubs provides APIs required for building HIDL Java
1126// libraries.
1127/////////////////////////////////////////////////////////////////////
1128
1129droidstubs {
1130 name: "hwbinder-stubs-docs",
Anton Hansson23f319f2023-03-03 16:04:02 +00001131 srcs: [":hwbinder-stubs-srcs"],
Colin Cross037d7fb2021-03-25 17:01:55 -07001132 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001133 installable: false,
1134 sdk_version: "core_platform",
1135 annotations_enabled: true,
Anton Hansson48ee95e2020-05-02 17:49:26 +01001136 previous_api: ":android.api.public.latest",
Jiyong Park7fb4b182019-12-20 14:35:43 +09001137 merge_annotations_dirs: [
1138 "metalava-manual",
1139 ],
Anton Hansson84a0e712023-10-23 09:17:45 +00001140 flags: priv_apps,
Jiyong Park7fb4b182019-12-20 14:35:43 +09001141}
1142
Anton Hanssonbbdd64b2021-04-26 18:47:39 +01001143java_library {
Jiyong Park7fb4b182019-12-20 14:35:43 +09001144 name: "hwbinder.stubs",
1145 sdk_version: "core_current",
Colin Cross037d7fb2021-03-25 17:01:55 -07001146 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001147 srcs: [
1148 ":hwbinder-stubs-docs",
1149 ],
Anton Hansson86925682021-04-14 14:54:43 +01001150 visibility: ["//visibility:public"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001151}