• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//
2// Copyright (C) 2018 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16package {
17    default_applicable_licenses: ["Android-Apache-2.0"],
18    default_team: "trendy_team_system_experience",
19}
20
21genrule {
22    name: "statslog-carsystemui-java-gen",
23    tools: ["stats-log-api-gen"],
24    cmd: "$(location stats-log-api-gen) --java $(out) --module carsystemui" +
25        " --javaPackage com.android.systemui --javaClass CarSystemUIStatsLog",
26    out: ["com/android/systemui/car/CarSystemUIStatsLog.java"],
27}
28
29carsystemui_srcs = [
30    "src/**/*.java",
31    "src/**/*.kt",
32    "src/**/I*.aidl",
33    ":statslog-carsystemui-java-gen",
34]
35
36java_defaults {
37    name: "CarSystemUI-core-defaults",
38
39    srcs: carsystemui_srcs,
40
41    resource_dirs: [
42        "res-keyguard",
43        "res",
44    ],
45
46    static_libs: [
47        "SystemUI-core",
48        "CarNotificationLib",
49        "SystemUIPluginLib",
50        "SystemUISharedLib",
51        "SettingsLib",
52        "car-admin-ui-lib",
53        "car-helper-lib",
54        "car-telephony-common-no-overlayable",
55        "car-ui-lib-no-overlayable",
56        "car-qc-lib",
57        "car-scalable-ui-lib",
58        "com_android_systemui_car_flags_lib",
59        "androidx.annotation_annotation",
60        "androidx.legacy_legacy-support-v4",
61        "androidx.recyclerview_recyclerview",
62        "androidx.preference_preference",
63        "androidx.appcompat_appcompat",
64        "androidx.mediarouter_mediarouter",
65        "androidx.palette_palette",
66        "androidx.legacy_legacy-preference-v14",
67        "androidx.leanback_leanback",
68        "androidx.slice_slice-core",
69        "androidx.slice_slice-view",
70        "androidx.slice_slice-builders",
71        "androidx.arch.core_core-runtime",
72        "androidx.lifecycle_lifecycle-common-java8",
73        "androidx.lifecycle_lifecycle-extensions",
74        "SystemUI-tags",
75        "SystemUI-proto",
76        "dagger2",
77        "//external/kotlinc:kotlin-annotations",
78        "//frameworks/libs/systemui:animationlib",
79        "CarDockLib",
80        "androidx.test.rules",
81        "car-data-subscription-lib",
82        "Car-WindowManager-Shell",
83        "oem-token-lib",
84    ],
85
86    libs: [
87        "android.car",
88        "token-shared-lib-prebuilt",
89    ],
90    enforce_uses_libs: false,
91
92    // TODO(b/319708040): re-enable use_resource_processor
93    use_resource_processor: false,
94}
95
96android_library {
97    name: "CarSystemUI-core",
98
99    defaults: [
100        "CarSystemUI-core-defaults",
101    ],
102
103    aaptflags: [
104        "--no-resource-deduping",
105    ],
106
107    javacflags: ["-Adagger.fastInit=enabled"],
108
109    manifest: "AndroidManifest.xml",
110
111    plugins: ["dagger2-compiler"],
112    // TODO(b/319708040): re-enable use_resource_processor
113    use_resource_processor: false,
114}
115
116android_app {
117    name: "CarSystemUI",
118
119    defaults: [
120        "wmshell_defaults",
121    ],
122
123    static_libs: [
124        "CarSystemUI-core",
125    ],
126
127    export_package_resources: true,
128
129    libs: [
130        "android.car",
131        "token-shared-lib-prebuilt",
132    ],
133
134    enforce_uses_libs: false,
135
136    resource_dirs: [],
137
138    overrides: [
139        "SystemUI",
140    ],
141
142    platform_apis: true,
143    system_ext_specific: true,
144    certificate: "platform",
145    privileged: true,
146
147    optimize: {
148        proguard_flags_files: [
149            "proguard.flags",
150        ],
151    },
152    // TODO(b/301283770): Compiling CarSystemUI should not require -J-Xmx8192M
153    javacflags: [
154        "-J-Xmx8192M",
155    ],
156    dxflags: ["--multi-dex"],
157
158    aaptflags: [
159        "--extra-packages",
160        "com.android.keyguard",
161    ],
162
163    kotlincflags: ["-Xjvm-default=all"],
164
165    plugins: ["dagger2-compiler"],
166
167    required: [
168        "privapp_whitelist_com.android.systemui",
169        "allowed_privapp_com.android.carsystemui",
170    ],
171
172    // TODO(b/319708040): re-enable use_resource_processor
173    use_resource_processor: false,
174}
175
176// Begin daggervis
177
178// Dropped from google3/java/com/google/android/libraries/docs/inject/daggerplugin/dot
179java_import_host {
180    name: "car-systemui-binding-graph-plugin-jar",
181    jars: ["daggervis/libdagger_binding_graph_plugin_lib.jar"],
182}
183
184// A java SPI plugin to visualize dagger dependency graph.
185java_plugin {
186    name: "car-systemui-binding-graph-plugin",
187    static_libs: [
188        "car-systemui-binding-graph-plugin-jar",
189        "dagger2-compiler-lib",
190        "auto_service_annotations",
191        "auto_value_annotations",
192        "auto_value_memoized_extension_annotations",
193    ],
194    processor_class: "dagger.internal.codegen.ComponentProcessor",
195}
196
197android_library {
198    name: "CarSystemUI-core-daggervis",
199    defaults: [
200        "CarSystemUI-core-defaults",
201    ],
202    plugins: [
203        "car-systemui-binding-graph-plugin",
204        "dagger2-compiler",
205    ],
206}
207
208// End daggervis
209
210android_library {
211    name: "CarSystemUI-tests-base",
212    manifest: "tests/AndroidManifest-base.xml",
213    resource_dirs: [
214        "tests/res",
215        "res-keyguard",
216        "res",
217    ],
218    static_libs: [
219        "SystemUI-tests-base",
220        "CarNotificationLib",
221        "android.car.test.utils",
222        "car-admin-ui-lib",
223        "car-helper-lib",
224        "car-telephony-common-no-overlayable",
225        "car-ui-lib-no-overlayable",
226        "car-qc-lib",
227        "car-scalable-ui-lib",
228        "com_android_systemui_car_flags_lib",
229        "CarDockLib",
230        "car-data-subscription-lib",
231        "testng",
232        "//external/kotlinc:kotlin-annotations",
233        "Car-WindowManager-Shell",
234        "oem-token-lib",
235    ],
236
237    libs: [
238        "token-shared-lib-prebuilt",
239    ],
240    enforce_uses_libs: false,
241
242}
243
244android_library {
245    name: "CarSystemUI-tests",
246    manifest: "tests/AndroidManifest-base.xml",
247    additional_manifests: ["tests/AndroidManifest.xml"],
248    srcs: [
249        "tests/src/**/*.java",
250        "tests/src/**/*.kt",
251        ":CarSystemUI-tests-multivalent",
252        "src/**/*.java",
253        "src/**/*.kt",
254        "src/**/I*.aidl",
255        ":statslog-carsystemui-java-gen",
256    ],
257
258    kotlin_lang_version: "1.9",
259
260    static_libs: [
261        "SystemUI-tests",
262        "CarSystemUI-tests-base",
263    ],
264    libs: [
265        "android.test.runner.stubs.system",
266        "android.test.base.stubs.system",
267        "android.car",
268        "token-shared-lib-prebuilt",
269        "android.test.mock.stubs.system",
270    ],
271
272    enforce_uses_libs: false,
273
274    aaptflags: [
275        "--extra-packages",
276        "com.android.systemui",
277    ],
278
279    plugins: ["dagger2-compiler"],
280
281    lint: {
282        test: true,
283    },
284
285    // TODO(b/218518451) re-enable errorprone.
286    errorprone: {
287        enabled: false,
288    },
289    // TODO(b/319708040): re-enable use_resource_processor
290    use_resource_processor: false,
291}
292
293android_app {
294    name: "CarSystemUIRobo-stub",
295    defaults: [
296        "platform_app_defaults",
297        "SystemUI_optimized_defaults",
298        "wmshell_defaults",
299    ],
300    manifest: "tests/AndroidManifest-base.xml",
301
302    srcs: [
303        "src/**/*.java",
304        "src/**/*.kt",
305        "src/**/I*.aidl",
306    ],
307    static_libs: [
308        "//frameworks/libs/systemui:compilelib",
309        "CarSystemUI-tests-base",
310        "androidx.compose.runtime_runtime",
311        "CarSystemUI-core",
312    ],
313    libs: [
314        "keepanno-annotations",
315        "android.car",
316        "token-shared-lib-prebuilt",
317    ],
318
319    enforce_uses_libs: false,
320
321    aaptflags: [
322        "--extra-packages",
323        "com.android.systemui",
324    ],
325    dont_merge_manifests: true,
326    platform_apis: true,
327    system_ext_specific: true,
328    certificate: "platform",
329    privileged: true,
330    kotlincflags: ["-Xjvm-default=all"],
331    optimize: {
332        shrink_resources: false,
333        optimized_shrink_resources: false,
334        proguard_flags_files: ["proguard.flags"],
335    },
336
337    plugins: ["dagger2-compiler"],
338
339    // TODO(b/319708040): re-enable use_resource_processor
340    use_resource_processor: false,
341}
342
343android_robolectric_test {
344    name: "CarSystemUIRoboTests",
345    srcs: [
346        ":SystemUI-robotest-utils",
347        ":SystemUI-tests-utils",
348        ":CarSystemUI-tests-multivalent",
349    ],
350    static_libs: [
351        "RoboTestLibraries",
352    ],
353    libs: [
354        "android.car",
355        "android.test.runner.impl",
356        "android.test.base.impl",
357        "android.test.mock.impl",
358        "truth",
359        "token-shared-lib-prebuilt",
360    ],
361
362    enforce_uses_libs: false,
363
364    instrumentation_for: "CarSystemUIRobo-stub",
365    java_resource_dirs: ["tests/robolectric/config"],
366    plugins: [
367        "dagger2-compiler",
368    ],
369    strict_mode: false,
370}
371
372android_ravenwood_test {
373    name: "CarSystemUIRavenTests",
374    srcs: [
375        ":SystemUI-tests-utils",
376        ":CarSystemUI-tests-multivalent",
377        ":CarSystemUIRobo-stub{.aapt.srcjar}",
378    ],
379    static_libs: [
380        "CarSystemUI-core",
381        "CarSystemUI-tests-base",
382        "androidx.test.uiautomator_uiautomator",
383        "androidx.core_core-animation-testing",
384        "androidx.test.ext.junit",
385        "kosmos",
386        "mockito-kotlin-nodeps",
387    ],
388    libs: [
389        "android.car",
390        "android.test.runner.stubs.system",
391        "android.test.base.stubs.system",
392        "android.test.mock.stubs.system",
393        "token-shared-lib-prebuilt",
394    ],
395
396    enforce_uses_libs: false,
397    auto_gen_config: true,
398    plugins: [
399        "dagger2-compiler",
400    ],
401}
402
403filegroup {
404    name: "CarSystemUI-tests-multivalent",
405    srcs: [
406        "multivalentTests/src/**/*.kt",
407        "multivalentTests/src/**/*.java",
408        "tests/utils/src/com/android/systemui/*.java",
409    ],
410}
411