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-resource-common", 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 ], 83 84 libs: [ 85 "android.car", 86 ], 87 88 // TODO(b/319708040): re-enable use_resource_processor 89 use_resource_processor: false, 90} 91 92android_library { 93 name: "CarSystemUI-core", 94 95 defaults: [ 96 "CarSystemUI-core-defaults", 97 ], 98 99 aaptflags: [ 100 "--no-resource-deduping", 101 ], 102 103 javacflags: ["-Adagger.fastInit=enabled"], 104 105 manifest: "AndroidManifest.xml", 106 107 plugins: ["dagger2-compiler"], 108 // TODO(b/319708040): re-enable use_resource_processor 109 use_resource_processor: false, 110} 111 112android_app { 113 name: "CarSystemUI", 114 115 defaults: [ 116 "wmshell_defaults", 117 ], 118 119 static_libs: [ 120 "CarSystemUI-core", 121 ], 122 123 export_package_resources: true, 124 125 libs: [ 126 "android.car", 127 ], 128 129 resource_dirs: [], 130 131 overrides: [ 132 "SystemUI", 133 ], 134 135 platform_apis: true, 136 system_ext_specific: true, 137 certificate: "platform", 138 privileged: true, 139 140 optimize: { 141 proguard_flags_files: [ 142 "proguard.flags", 143 ], 144 }, 145 // TODO(b/301283770): Compiling CarSystemUI should not require -J-Xmx8192M 146 javacflags: [ 147 "-J-Xmx8192M", 148 ], 149 dxflags: ["--multi-dex"], 150 151 aaptflags: [ 152 "--extra-packages", 153 "com.android.keyguard", 154 ], 155 156 kotlincflags: ["-Xjvm-default=all"], 157 158 plugins: ["dagger2-compiler"], 159 160 required: [ 161 "privapp_whitelist_com.android.systemui", 162 "allowed_privapp_com.android.carsystemui", 163 ], 164 165 // TODO(b/319708040): re-enable use_resource_processor 166 use_resource_processor: false, 167} 168 169// Begin daggervis 170 171// Dropped from google3/java/com/google/android/libraries/docs/inject/daggerplugin/dot 172java_import_host { 173 name: "car-systemui-binding-graph-plugin-jar", 174 jars: ["daggervis/libdagger_binding_graph_plugin_lib.jar"], 175} 176 177// A java SPI plugin to visualize dagger dependency graph. 178java_plugin { 179 name: "car-systemui-binding-graph-plugin", 180 static_libs: [ 181 "car-systemui-binding-graph-plugin-jar", 182 "dagger2-compiler-lib", 183 "auto_service_annotations", 184 "auto_value_annotations", 185 "auto_value_memoized_extension_annotations", 186 ], 187 processor_class: "dagger.internal.codegen.ComponentProcessor", 188} 189 190android_library { 191 name: "CarSystemUI-core-daggervis", 192 defaults: [ 193 "CarSystemUI-core-defaults", 194 ], 195 plugins: [ 196 "car-systemui-binding-graph-plugin", 197 "dagger2-compiler", 198 ], 199} 200 201// End daggervis 202 203// Resource lib 204// To be used ONLY for RROs of CarSystemUI 205android_library { 206 name: "CarSystemUI-res", 207 sdk_version: "system_current", 208 resource_dirs: [ 209 "res-keyguard", 210 "res", 211 ], 212 manifest: "AndroidManifest-res.xml", 213 use_resource_processor: true, 214 static_libs: [ 215 "SystemUI-res", 216 "CarNotification-res", 217 "car-resource-common", 218 "car-ui-lib-no-overlayable", 219 ], 220 lint: { 221 disabled_checks: ["MissingClass"], 222 }, 223} 224 225android_library { 226 name: "CarSystemUI-tests-base", 227 manifest: "tests/AndroidManifest-base.xml", 228 resource_dirs: [ 229 "tests/res", 230 ], 231 static_libs: [ 232 "CarSystemUI-res", 233 "SystemUI-tests-base", 234 "CarNotificationLib", 235 "android.car.test.utils", 236 "car-admin-ui-lib", 237 "car-helper-lib", 238 "car-telephony-common-no-overlayable", 239 "car-ui-lib-no-overlayable", 240 "car-qc-lib", 241 "car-resource-common", 242 "com_android_systemui_car_flags_lib", 243 "CarDockLib", 244 "car-data-subscription-lib", 245 "testng", 246 "//external/kotlinc:kotlin-annotations", 247 ], 248} 249 250android_library { 251 name: "CarSystemUI-tests", 252 manifest: "tests/AndroidManifest-base.xml", 253 additional_manifests: ["tests/AndroidManifest.xml"], 254 srcs: [ 255 "tests/src/**/*.java", 256 "tests/src/**/*.kt", 257 ":CarSystemUI-tests-multivalent", 258 "src/**/*.java", 259 "src/**/*.kt", 260 "src/**/I*.aidl", 261 ":statslog-carsystemui-java-gen", 262 ], 263 static_libs: [ 264 "SystemUI-tests", 265 "CarSystemUI-tests-base", 266 ], 267 libs: [ 268 "android.test.runner.stubs.system", 269 "android.test.base.stubs.system", 270 "android.car", 271 ], 272 273 aaptflags: [ 274 "--extra-packages", 275 "com.android.systemui", 276 ], 277 278 plugins: ["dagger2-compiler"], 279 280 lint: { 281 test: true, 282 }, 283 284 // TODO(b/218518451) re-enable errorprone. 285 errorprone: { 286 enabled: false, 287 }, 288 // TODO(b/319708040): re-enable use_resource_processor 289 use_resource_processor: false, 290} 291 292android_app { 293 name: "CarSystemUIRobo-stub", 294 defaults: [ 295 "platform_app_defaults", 296 "SystemUI_optimized_defaults", 297 "wmshell_defaults", 298 ], 299 manifest: "tests/AndroidManifest-base.xml", 300 301 srcs: [ 302 "src/**/*.java", 303 "src/**/*.kt", 304 "src/**/I*.aidl", 305 ], 306 static_libs: [ 307 "//frameworks/libs/systemui:compilelib", 308 "CarSystemUI-tests-base", 309 "androidx.compose.runtime_runtime", 310 "CarSystemUI-core", 311 ], 312 libs: [ 313 "keepanno-annotations", 314 "android.car", 315 ], 316 aaptflags: [ 317 "--extra-packages", 318 "com.android.systemui", 319 ], 320 dont_merge_manifests: true, 321 platform_apis: true, 322 system_ext_specific: true, 323 certificate: "platform", 324 privileged: true, 325 kotlincflags: ["-Xjvm-default=all"], 326 optimize: { 327 shrink_resources: false, 328 optimized_shrink_resources: false, 329 proguard_flags_files: ["proguard.flags"], 330 }, 331 332 plugins: ["dagger2-compiler"], 333 334 // TODO(b/319708040): re-enable use_resource_processor 335 use_resource_processor: false, 336} 337 338android_robolectric_test { 339 name: "CarSystemUIRoboTests", 340 srcs: [ 341 ":SystemUI-robotest-utils", 342 ":SystemUI-tests-utils", 343 ":CarSystemUI-tests-multivalent", 344 ], 345 static_libs: [ 346 "RoboTestLibraries", 347 ], 348 libs: [ 349 "android.car", 350 "android.test.runner.stubs.system", 351 "android.test.base.stubs.system", 352 "android.test.mock.stubs.system", 353 "truth", 354 ], 355 356 upstream: true, 357 358 instrumentation_for: "CarSystemUIRobo-stub", 359 java_resource_dirs: ["tests/robolectric/config"], 360 plugins: [ 361 "dagger2-compiler", 362 ], 363 strict_mode: false, 364} 365 366android_ravenwood_test { 367 name: "CarSystemUIRavenTests", 368 srcs: [ 369 ":SystemUI-tests-utils", 370 ":CarSystemUI-tests-multivalent", 371 ":CarSystemUIRobo-stub{.aapt.srcjar}", 372 ], 373 static_libs: [ 374 "CarSystemUI-core", 375 "CarSystemUI-res", 376 "CarSystemUI-tests-base", 377 "androidx.test.uiautomator_uiautomator", 378 "androidx.core_core-animation-testing", 379 "androidx.test.ext.junit", 380 "kosmos", 381 "mockito-kotlin-nodeps", 382 ], 383 libs: [ 384 "android.car", 385 "android.test.runner.stubs.system", 386 "android.test.base.stubs.system", 387 "android.test.mock.stubs.system", 388 ], 389 auto_gen_config: true, 390 plugins: [ 391 "dagger2-compiler", 392 ], 393} 394 395filegroup { 396 name: "CarSystemUI-tests-multivalent", 397 srcs: [ 398 "multivalentTests/src/**/*.kt", 399 "multivalentTests/src/**/*.java", 400 ], 401} 402