• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (C) 2018 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
15package {
16    default_team: "trendy_team_aaos_framework",
17    default_applicable_licenses: ["Android-Apache-2.0"],
18}
19
20filegroup {
21    name: "android.car.cluster.navigation-src",
22    srcs: ["src/android/car/navigation/navigation_state.proto"],
23    visibility: [
24        "//packages/services/Car/car-lib",
25        "//packages/services/Car/service",
26    ],
27}
28
29// Public protos for CarTelemetryManager clients.
30filegroup {
31    name: "cartelemetryservice-proto-srcs",
32    srcs: [
33        "src/android/car/telemetry/telemetry.proto",
34    ],
35}
36
37java_library {
38    name: "android.car.cluster.navigation",
39    proto: {
40        type: "lite",
41    },
42    sdk_version: "module_current",
43    min_sdk_version: "31",
44    apex_available: [
45        "//apex_available:platform",
46        "com.android.car.framework",
47    ],
48    static_libs: ["libprotobuf-java-lite"],
49    srcs: ["src/android/car/navigation/navigation_state.proto"],
50}
51
52filegroup {
53    name: "android.car-full-src",
54    srcs: [
55        "src/**/*.java",
56        "src/**/*.aidl",
57    ],
58    visibility: [
59        "//packages/services/Car/car-lib",
60        "//packages/services/Car/car-lib-module",
61        "//packages/services/Car/tests/CarLibUnitTest:__subpackages__",
62    ],
63}
64
65java_defaults {
66    name: "android.car-defaults",
67    defaults: [
68        "car-framework-aconfig-libraries",
69    ],
70    srcs: [
71        ":android.car-full-src",
72    ],
73    aidl: {
74        include_dirs: [
75            "packages/modules/Bluetooth/framework/aidl-export",
76        ],
77    },
78    libs: [
79        "android.car.builtin",
80        "framework-annotations-lib",
81        "framework-wifi",
82        "framework-bluetooth",
83        "framework-location",
84        "modules-utils-preconditions",
85    ],
86    installable: true,
87    // TODO(b/288271411): enable it when car mainline module is supported
88    // min_sdk_version: "33",
89    sdk_version: "module_current",
90}
91
92java_library {
93    name: "android.car",
94    defaults: [
95        "android.car-defaults",
96    ],
97    static_libs: [
98        "com.android.car.internal.dep",
99    ],
100}
101
102// TODO(b/248635421): these annotations are part of android.car, but
103// they're still need on ATS
104java_library_static {
105    name: "android.car.annotations.compile-only",
106    srcs: [
107        "src/android/car/annotation/*",
108        "src/android/car/ApiVersion.java",
109        "src/android/car/CarVersion.java",
110        "src/android/car/PlatformVersion.java",
111    ],
112}
113
114stubs_defaults {
115    name: "android.car-docs-default",
116    srcs: [
117        "src/**/*.java",
118    ],
119    libs: [
120        "android.car",
121    ],
122}
123
124droidstubs {
125    name: "android.car-stubs-docs",
126    defaults: ["android.car-docs-default"],
127    args: "--hide UnavailableSymbol --hide HiddenSuperclass --stub-packages android.car* " +
128        "--hide-package com.android.internal --hide-package com.android.car.internal " +
129        "--error UnflaggedApi",
130    installable: false,
131    check_api: {
132        last_released: {
133            api_file: ":android.car.api.combined.public.latest",
134            removed_api_file: ":android.car-removed.api.combined.public.latest",
135        },
136        current: {
137            api_file: "api/current.txt",
138            removed_api_file: "api/removed.txt",
139        },
140        api_lint: {
141            enabled: true,
142            new_since: ":android.car.api.combined.public.latest",
143            baseline_file: "api/lint-baseline.txt",
144        },
145    },
146}
147
148droidstubs {
149    name: "android.car-system-stubs-docs",
150    defaults: ["android.car-docs-default"],
151    // TODO(b/174572385): Remove CallbackInterface once this b/174572385 is fixed
152    args: "--hide CallbackInterface --hide UnavailableSymbol --hide HiddenSuperclass " +
153        "--stub-packages android.car* " +
154        "--show-annotation android.annotation.SystemApi --hide-package com.android.internal " +
155        "--hide-package com.android.car.internal --error UnflaggedApi",
156    installable: false,
157    check_api: {
158        last_released: {
159            api_file: ":android.car.api.combined.system.latest",
160            removed_api_file: ":android.car-removed.api.combined.system.latest",
161        },
162        current: {
163            api_file: "api/system-current.txt",
164            removed_api_file: "api/system-removed.txt",
165        },
166        api_lint: {
167            enabled: true,
168            new_since: ":android.car.api.combined.system.latest",
169            baseline_file: "api/system-lint-baseline.txt",
170        },
171    },
172}
173
174droidstubs {
175    name: "android.car-test-stubs-docs",
176    defaults: ["android.car-docs-default"],
177    args: "--hide HiddenSuperclass --hide UnavailableSymbol --stub-packages android.car* " +
178        "--show-annotation android.annotation.TestApi " +
179        "--show-annotation android.annotation.SystemApi",
180    installable: false,
181    check_api: {
182        current: {
183            api_file: "api/test-current.txt",
184            removed_api_file: "api/test-removed.txt",
185        },
186    },
187}
188
189droidstubs {
190    name: "android.car-stub-docs",
191    srcs: [
192        "src/**/*.java",
193    ],
194    libs: [
195        "android.car",
196    ],
197    api_filename: "api.txt",
198    args: "--hide HiddenSuperclass --hide UnavailableSymbol --stub-packages android.car* ",
199    installable: false,
200}
201
202// Generates stubs for API documentation.
203droidstubs {
204    name: "car-doc-stubs",
205    srcs: [
206        "src/**/*.java",
207    ],
208    create_doc_stubs: true,
209    annotations_enabled: true,
210    api_levels_annotations_enabled: true,
211    api_levels_jar_filename: "android.car.jar",
212    api_levels_annotations_dirs: [
213        "sdk-dir",
214        "api-versions-jars-dir",
215    ],
216    previous_api: ":android.car.api.combined.public.latest",
217    merge_annotations_dirs: [
218        "metalava-manual",
219    ],
220    arg_files: [
221        "AndroidManifest.xml",
222    ],
223    // Add --verbose to print metalava details.
224    args: "--manifest $(location AndroidManifest.xml) " +
225        "--error UnhiddenSystemApi " +
226        "--hide RequiresPermission " +
227        "--hide CallbackInterface " +
228        "--hide MissingPermission " +
229        "--hide HiddenSuperclass --hide DeprecationMismatch --hide UnavailableSymbol " +
230        "--hide SdkConstant --hide HiddenTypeParameter " +
231        "--hide Todo ",
232    write_sdk_values: true,
233}
234
235// Generates API docs for go/devsite.
236//
237// How API docs are generated:
238//    source files -> (droidstubs/metalava) -> stub source files -> (droiddoc/doclava) -> docs
239//
240// The metalava conversion is done by droidstub module "car-doc-stubs".
241//
242// TODO(b/162958231): Remove "ds-car-docs" from build/soong/java/legacy_core_platform_api_usage.go.
243droiddoc {
244    name: "ds-car-docs",
245    srcs: [
246        ":car-doc-stubs",
247    ],
248    libs: [
249        "stub-annotations",
250        "unsupportedappusage",
251    ],
252    custom_template: "droiddoc-templates-sdk",
253    // These variables that are used in doclava templates.
254    hdf: [
255        "dac true",
256        "sdk.preview 0", // Not a preview version.
257        "sdk.version 31",
258        "android.whichdoc online",
259        "android.hasSamples false",
260    ],
261    arg_files: [
262        "AndroidManifest.xml",
263    ],
264    proofread_file: "ds-sdk-docs-proofrerad.txt",
265    // See doclava docs in https://github.com/tinks/doclava.
266    // See error numbers in external/doclava/src/com/google/doclava/Errors.java.
267    // TODO(b/163831343): Add -werror -lerror to catch bad javadocs
268    args: "-android -manifest $(location AndroidManifest.xml) -toroot / -devsite -yamlV2 -metalavaApiSince " +
269        "-hide 111 -hide 113 -hide 125 -hide 126 -hide 127 -hide 128 " +
270        "-stubpackages android.car -dac_libraryroot android/car ",
271}
272
273java_defaults {
274    name: "android.car-stubs.jar_defaults",
275    java_version: "1.8",
276    installable: false,
277}
278
279java_defaults {
280    name: "android.car-stubs-dex.jar_defaults",
281    compile_dex: true,
282}
283
284java_library {
285    name: "android.car-stubs",
286    defaults: ["android.car-stubs.jar_defaults"],
287    srcs: [
288        ":android.car-stub-docs",
289    ],
290    sdk_version: "current",
291    dist: {
292        targets: ["dist_files"],
293    },
294}
295
296java_library {
297    name: "android.car-stubs-dex",
298    defaults: ["android.car-stubs-dex.jar_defaults"],
299    static_libs: ["android.car-stubs"],
300    sdk_version: "current",
301}
302
303java_library {
304    name: "android.car-system-stubs",
305    defaults: ["android.car-stubs.jar_defaults"],
306    srcs: [
307        ":android.car-system-stubs-docs",
308    ],
309    sdk_version: "system_current",
310    dist: {
311        targets: ["dist_files"],
312    },
313}
314
315java_library {
316    name: "android.car-system-stubs-dex",
317    defaults: ["android.car-stubs-dex.jar_defaults"],
318    static_libs: ["android.car-system-stubs"],
319    sdk_version: "system_current",
320}
321
322java_library {
323    name: "android.car-test-stubs",
324    defaults: ["android.car-stubs.jar_defaults"],
325    srcs: [
326        ":android.car-test-stubs-docs",
327    ],
328    sdk_version: "test_current",
329}
330
331java_library {
332    name: "android.car-test-stubs-dex",
333    defaults: ["android.car-stubs-dex.jar_defaults"],
334    static_libs: ["android.car-test-stubs"],
335    sdk_version: "test_current",
336    dist: {
337        targets: ["dist_files"],
338    },
339}
340
341// Export the api/system-current.txt file.
342filegroup {
343    name: "car-api-system-current.txt",
344    visibility: [
345        "//cts/tests/signature/api",
346    ],
347    srcs: [
348        "api/system-current.txt",
349    ],
350}
351
352// Export the api/system-removed.txt file.
353filegroup {
354    name: "car-api-system-removed.txt",
355    visibility: [
356        "//cts/tests/signature/api",
357    ],
358    srcs: [
359        "api/system-removed.txt",
360    ],
361}
362