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 // See: http://go/android-license-faq 17 default_applicable_licenses: ["Android-Apache-2.0"], 18} 19 20min_launcher3_sdk_version = "26" 21 22// Common source files used to build launcher (java and kotlin) 23// All sources are split so they can be reused in many other libraries/apps in other folders 24filegroup { 25 name: "launcher-src", 26 srcs: [ "src/**/*.java", "src/**/*.kt" ], 27} 28 29filegroup { 30 name: "launcher-quickstep-src", 31 srcs: [ "quickstep/src/**/*.java", "quickstep/src/**/*.kt" ], 32} 33 34filegroup { 35 name: "launcher-go-src", 36 srcs: [ "go/src/**/*.java", "go/src/**/*.kt" ], 37} 38 39filegroup { 40 name: "launcher-go-quickstep-src", 41 srcs: [ "go/quickstep/src/**/*.java", "go/quickstep/src/**/*.kt" ], 42} 43 44filegroup { 45 name: "launcher-src_shortcuts_overrides", 46 srcs: [ "src_shortcuts_overrides/**/*.java", "src_shortcuts_overrides/**/*.kt" ], 47} 48 49filegroup { 50 name: "launcher-src_ui_overrides", 51 srcs: [ "src_ui_overrides/**/*.java", "src_ui_overrides/**/*.kt" ], 52} 53 54filegroup { 55 name: "launcher-ext_tests", 56 srcs: [ "ext_tests/**/*.java", "ext_tests/**/*.kt" ], 57} 58 59filegroup { 60 name: "launcher-quickstep-ext_tests", 61 srcs: [ "quickstep/ext_tests/**/*.java", "quickstep/ext_tests/**/*.kt" ], 62} 63 64// Proguard files for Launcher3 65filegroup { 66 name: "launcher-proguard-rules", 67 srcs: ["proguard.flags"], 68} 69 70android_library { 71 name: "launcher-aosp-tapl", 72 libs: [ 73 "framework-statsd", 74 ], 75 static_libs: [ 76 "androidx.annotation_annotation", 77 "androidx.test.runner", 78 "androidx.test.rules", 79 "androidx.test.uiautomator_uiautomator", 80 "androidx.preference_preference", 81 "SystemUISharedLib", 82 "animationlib", 83 "launcher-testing-shared", 84 ], 85 srcs: [ 86 "tests/tapl/**/*.java", 87 ], 88 resource_dirs: [ ], 89 manifest: "tests/tapl/AndroidManifest.xml", 90 platform_apis: true, 91} 92 93java_library_static { 94 name: "launcher_log_protos_lite", 95 srcs: [ 96 "protos/*.proto", 97 "protos_overrides/*.proto", 98 ], 99 sdk_version: "current", 100 proto: { 101 type: "lite", 102 local_include_dirs:[ 103 "protos", 104 "protos_overrides", 105 ], 106 }, 107 static_libs: ["libprotobuf-java-lite"], 108} 109 110java_library_static { 111 name: "launcher_quickstep_log_protos_lite", 112 srcs: [ 113 "quickstep/protos_overrides/*.proto", 114 ], 115 sdk_version: "current", 116 proto: { 117 type: "lite", 118 local_include_dirs:[ 119 "quickstep/protos_overrides", 120 ], 121 }, 122 static_libs: [ 123 "libprotobuf-java-lite", 124 "launcher_log_protos_lite" 125 ], 126} 127 128java_library { 129 name: "LauncherPluginLib", 130 131 static_libs: ["PluginCoreLib"], 132 133 srcs: ["src_plugins/**/*.java"], 134 135 sdk_version: "current", 136 min_sdk_version: min_launcher3_sdk_version, 137} 138 139// Library with all the dependencies for building Launcher3 140android_library { 141 name: "Launcher3ResLib", 142 srcs: [ ], 143 resource_dirs: ["res"], 144 static_libs: [ 145 "LauncherPluginLib", 146 "launcher_quickstep_log_protos_lite", 147 "androidx-constraintlayout_constraintlayout", 148 "androidx.recyclerview_recyclerview", 149 "androidx.dynamicanimation_dynamicanimation", 150 "androidx.fragment_fragment", 151 "androidx.preference_preference", 152 "androidx.slice_slice-view", 153 "androidx.cardview_cardview", 154 "com.google.android.material_material", 155 "iconloader_base", 156 "view_capture", 157 "animationlib" 158 ], 159 manifest: "AndroidManifest-common.xml", 160 sdk_version: "current", 161 min_sdk_version: min_launcher3_sdk_version, 162 lint: { 163 baseline_filename: "lint-baseline-res-lib.xml", 164 }, 165} 166 167// 168// Build rule for Launcher3 dependencies lib. 169// 170android_library { 171 name: "Launcher3CommonDepsLib", 172 srcs: ["src_build_config/**/*.java"], 173 static_libs: [ 174 "Launcher3ResLib", 175 "launcher-testing-shared", 176 "animationlib" 177 ], 178 sdk_version: "current", 179 min_sdk_version: min_launcher3_sdk_version, 180 manifest: "AndroidManifest-common.xml", 181 lint: { 182 baseline_filename: "lint-baseline-common-deps-lib.xml", 183 }, 184} 185 186// 187// Build rule for Launcher3 app. 188// 189android_app { 190 name: "Launcher3", 191 192 static_libs: [ 193 "Launcher3CommonDepsLib", 194 ], 195 srcs: [ 196 ":launcher-src", 197 ":launcher-src_shortcuts_overrides", 198 ":launcher-src_ui_overrides", 199 ":launcher-ext_tests", 200 ], 201 resource_dirs: [ 202 "ext_tests/res", 203 ], 204 optimize: { 205 proguard_flags_files: ["proguard.flags"], 206 // Proguard is disable for testing. Derivarive prjects to keep proguard enabled 207 enabled: false, 208 }, 209 210 sdk_version: "current", 211 min_sdk_version: min_launcher3_sdk_version, 212 target_sdk_version: "current", 213 privileged: true, 214 system_ext_specific: true, 215 216 overrides: [ 217 "Home", 218 "Launcher2", 219 ], 220 required: ["privapp_whitelist_com.android.launcher3"], 221 222 jacoco: { 223 include_filter: ["com.android.launcher3.**"], 224 }, 225 additional_manifests: [ 226 "AndroidManifest-common.xml", 227 ], 228 lint: { 229 baseline_filename: "lint-baseline-launcher3.xml", 230 }, 231} 232 233// Library with all the dependencies for building quickstep 234android_library { 235 name: "QuickstepResLib", 236 srcs: [ ], 237 resource_dirs: [ 238 "quickstep/res", 239 ], 240 libs: [ 241 "framework-statsd", 242 ], 243 static_libs: [ 244 "Launcher3ResLib", 245 "lottie", 246 "SystemUISharedLib", 247 "SystemUI-statsd", 248 "animationlib", 249 ], 250 manifest: "quickstep/AndroidManifest.xml", 251 min_sdk_version: "current", 252} 253 254 255// Library with all the dependencies for building Launcher Go 256android_library { 257 name: "LauncherGoResLib", 258 srcs: [ 259 ":launcher-src", 260 ":launcher-quickstep-src", 261 ":launcher-go-src", 262 ":launcher-go-quickstep-src", 263 ], 264 resource_dirs: [ 265 "go/res", 266 "go/quickstep/res", 267 ], 268 // Note the ordering here is important when it comes to resource 269 // overriding. We want the most specific resource overrides defined 270 // in QuickstepResLib to take precendece, so it should be the final 271 // dependency. See b/205278434 for how this can go wrong. 272 static_libs: [ 273 "Launcher3CommonDepsLib", 274 "QuickstepResLib", 275 "androidx.room_room-runtime", 276 ], 277 plugins: ["androidx.room_room-compiler-plugin"], 278 manifest: "quickstep/AndroidManifest-launcher.xml", 279 additional_manifests: [ 280 "go/AndroidManifest.xml", 281 "AndroidManifest-common.xml", 282 ], 283 min_sdk_version: "current", 284 lint: { 285 baseline_filename: "lint-baseline-go-res-lib.xml", 286 }, 287} 288 289// Build rule for Quickstep library 290android_library { 291 name: "Launcher3QuickStepLib", 292 srcs: [ 293 ":launcher-src", 294 ":launcher-quickstep-src", 295 ":launcher-src_shortcuts_overrides", 296 ], 297 resource_dirs: [], 298 libs: [ 299 "framework-statsd", 300 ], 301 // Note the ordering here is important when it comes to resource 302 // overriding. We want the most specific resource overrides defined 303 // in QuickstepResLib to take precendece, so it should be the final 304 // dependency. See b/208647810 for how this can go wrong. 305 static_libs: [ 306 "SystemUI-statsd", 307 "SystemUISharedLib", 308 "Launcher3CommonDepsLib", 309 "QuickstepResLib", 310 "animationlib", 311 ], 312 manifest: "quickstep/AndroidManifest.xml", 313 platform_apis: true, 314 min_sdk_version: "current", 315 lint: { 316 baseline_filename: "lint-baseline-launcher3.xml", 317 }, 318} 319 320// Build rule for Launcher3 Go app for Android Go devices. 321android_app { 322 name: "Launcher3Go", 323 324 static_libs: ["Launcher3CommonDepsLib"], 325 326 srcs: [ 327 ":launcher-src", 328 ":launcher-go-src", 329 ":launcher-src_ui_overrides", 330 ], 331 332 resource_dirs: ["go/res"], 333 334 optimize: { 335 proguard_flags_files: ["proguard.flags"], 336 }, 337 338 sdk_version: "current", 339 min_sdk_version: "current", 340 target_sdk_version: "current", 341 privileged: true, 342 system_ext_specific: true, 343 overrides: [ 344 "Home", 345 "Launcher2", 346 "Launcher3", 347 "Launcher3QuickStep", 348 ], 349 required: ["privapp_whitelist_com.android.launcher3"], 350 351 additional_manifests: [ 352 "AndroidManifest.xml", 353 "AndroidManifest-common.xml", 354 ], 355 356 manifest: "go/AndroidManifest.xml", 357 jacoco: { 358 include_filter: ["com.android.launcher3.*"], 359 } 360 361} 362 363// Build rule for Quickstep app. 364android_app { 365 name: "Launcher3QuickStep", 366 367 static_libs: ["Launcher3QuickStepLib"], 368 optimize: { 369 enabled: false, 370 }, 371 372 platform_apis: true, 373 min_sdk_version: "current", 374 target_sdk_version: "current", 375 376 privileged: true, 377 system_ext_specific: true, 378 overrides: [ 379 "Home", 380 "Launcher2", 381 "Launcher3", 382 ], 383 required: ["privapp_whitelist_com.android.launcher3"], 384 385 resource_dirs: ["quickstep/res"], 386 387 additional_manifests: [ 388 "quickstep/AndroidManifest-launcher.xml", 389 "AndroidManifest-common.xml", 390 ], 391 392 manifest: "quickstep/AndroidManifest.xml", 393 jacoco: { 394 include_filter: ["com.android.launcher3.*"], 395 } 396 397} 398 399// Build rule for Launcher3 Go app with quickstep for Android Go devices. 400android_app { 401 name: "Launcher3QuickStepGo", 402 403 static_libs: [ 404 "SystemUI-statsd", 405 "SystemUISharedLib", 406 "LauncherGoResLib", 407 ], 408 409 platform_apis: true, 410 min_sdk_version: "current", 411 target_sdk_version: "current", 412 413 srcs: [ ], 414 415 resource_dirs: [ 416 "go/quickstep/res", 417 "go/res", 418 "quickstep/res", 419 ], 420 421 optimize: { 422 proguard_flags_files: ["proguard.flags"], 423 enabled: true, 424 }, 425 426 privileged: true, 427 system_ext_specific: true, 428 overrides: [ 429 "Home", 430 "Launcher2", 431 "Launcher3", 432 "Launcher3QuickStep", 433 ], 434 required: ["privapp_whitelist_com.android.launcher3"], 435 436 additional_manifests: [ 437 "go/AndroidManifest.xml", 438 "go/AndroidManifest-launcher.xml", 439 "AndroidManifest-common.xml", 440 ], 441 442 manifest: "quickstep/AndroidManifest.xml", 443 jacoco: { 444 include_filter: ["com.android.launcher3.*"], 445 } 446 447} 448 449