• 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    // 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