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