xref: /aosp_15_r20/frameworks/base/libs/WindowManager/Shell/Android.bp (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1*d57664e9SAndroid Build Coastguard Worker// Copyright (C) 2019 The Android Open Source Project
2*d57664e9SAndroid Build Coastguard Worker//
3*d57664e9SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d57664e9SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d57664e9SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d57664e9SAndroid Build Coastguard Worker//
7*d57664e9SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*d57664e9SAndroid Build Coastguard Worker//
9*d57664e9SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d57664e9SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d57664e9SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d57664e9SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d57664e9SAndroid Build Coastguard Worker// limitations under the License.
14*d57664e9SAndroid Build Coastguard Worker
15*d57664e9SAndroid Build Coastguard Workerpackage {
16*d57664e9SAndroid Build Coastguard Worker    // See: http://go/android-license-faq
17*d57664e9SAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
18*d57664e9SAndroid Build Coastguard Worker    // all of the 'license_kinds' from "frameworks_base_license"
19*d57664e9SAndroid Build Coastguard Worker    // to get the below license kinds:
20*d57664e9SAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
21*d57664e9SAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_base_license"],
22*d57664e9SAndroid Build Coastguard Worker    default_team: "trendy_team_multitasking_windowing",
23*d57664e9SAndroid Build Coastguard Worker}
24*d57664e9SAndroid Build Coastguard Worker
25*d57664e9SAndroid Build Coastguard Worker// Begin ProtoLog
26*d57664e9SAndroid Build Coastguard Workerjava_library {
27*d57664e9SAndroid Build Coastguard Worker    name: "wm_shell_protolog-groups",
28*d57664e9SAndroid Build Coastguard Worker    srcs: [
29*d57664e9SAndroid Build Coastguard Worker        "src/com/android/wm/shell/protolog/ShellProtoLogGroup.java",
30*d57664e9SAndroid Build Coastguard Worker        ":protolog-common-src",
31*d57664e9SAndroid Build Coastguard Worker    ],
32*d57664e9SAndroid Build Coastguard Worker}
33*d57664e9SAndroid Build Coastguard Worker
34*d57664e9SAndroid Build Coastguard Workerfilegroup {
35*d57664e9SAndroid Build Coastguard Worker    name: "wm_shell-sources",
36*d57664e9SAndroid Build Coastguard Worker    srcs: [
37*d57664e9SAndroid Build Coastguard Worker        "src/**/*.java",
38*d57664e9SAndroid Build Coastguard Worker    ],
39*d57664e9SAndroid Build Coastguard Worker    path: "src",
40*d57664e9SAndroid Build Coastguard Worker}
41*d57664e9SAndroid Build Coastguard Worker
42*d57664e9SAndroid Build Coastguard Worker// Aidls which can be used directly downstream of this library
43*d57664e9SAndroid Build Coastguard Workerfilegroup {
44*d57664e9SAndroid Build Coastguard Worker    name: "wm_shell-aidls",
45*d57664e9SAndroid Build Coastguard Worker    srcs: [
46*d57664e9SAndroid Build Coastguard Worker        "src/**/*.aidl",
47*d57664e9SAndroid Build Coastguard Worker    ],
48*d57664e9SAndroid Build Coastguard Worker    path: "src",
49*d57664e9SAndroid Build Coastguard Worker}
50*d57664e9SAndroid Build Coastguard Worker
51*d57664e9SAndroid Build Coastguard Worker// TODO(b/168581922) protologtool do not support kotlin(*.kt)
52*d57664e9SAndroid Build Coastguard Workerfilegroup {
53*d57664e9SAndroid Build Coastguard Worker    name: "wm_shell-sources-kt",
54*d57664e9SAndroid Build Coastguard Worker    srcs: [
55*d57664e9SAndroid Build Coastguard Worker        "src/**/*.kt",
56*d57664e9SAndroid Build Coastguard Worker    ],
57*d57664e9SAndroid Build Coastguard Worker    path: "src",
58*d57664e9SAndroid Build Coastguard Worker}
59*d57664e9SAndroid Build Coastguard Worker
60*d57664e9SAndroid Build Coastguard Workerjava_genrule {
61*d57664e9SAndroid Build Coastguard Worker    name: "wm_shell_protolog_src",
62*d57664e9SAndroid Build Coastguard Worker    srcs: [
63*d57664e9SAndroid Build Coastguard Worker        ":protolog-impl",
64*d57664e9SAndroid Build Coastguard Worker        ":wm_shell_protolog-groups",
65*d57664e9SAndroid Build Coastguard Worker        ":wm_shell-sources",
66*d57664e9SAndroid Build Coastguard Worker    ],
67*d57664e9SAndroid Build Coastguard Worker    tools: ["protologtool"],
68*d57664e9SAndroid Build Coastguard Worker    cmd: "$(location protologtool) transform-protolog-calls " +
69*d57664e9SAndroid Build Coastguard Worker        "--protolog-class com.android.internal.protolog.ProtoLog " +
70*d57664e9SAndroid Build Coastguard Worker        "--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " +
71*d57664e9SAndroid Build Coastguard Worker        "--loggroups-jar $(location :wm_shell_protolog-groups) " +
72*d57664e9SAndroid Build Coastguard Worker        "--viewer-config-file-path /system_ext/etc/wmshell.protolog.pb " +
73*d57664e9SAndroid Build Coastguard Worker        "--legacy-viewer-config-file-path /system_ext/etc/wmshell.protolog.json.gz " +
74*d57664e9SAndroid Build Coastguard Worker        "--legacy-output-file-path /data/misc/wmtrace/shell_log.winscope " +
75*d57664e9SAndroid Build Coastguard Worker        "--output-srcjar $(out) " +
76*d57664e9SAndroid Build Coastguard Worker        "$(locations :wm_shell-sources)",
77*d57664e9SAndroid Build Coastguard Worker    out: ["wm_shell_protolog.srcjar"],
78*d57664e9SAndroid Build Coastguard Worker}
79*d57664e9SAndroid Build Coastguard Worker
80*d57664e9SAndroid Build Coastguard Workerjava_genrule {
81*d57664e9SAndroid Build Coastguard Worker    name: "generate-wm_shell_protolog.json",
82*d57664e9SAndroid Build Coastguard Worker    srcs: [
83*d57664e9SAndroid Build Coastguard Worker        ":wm_shell_protolog-groups",
84*d57664e9SAndroid Build Coastguard Worker        ":wm_shell-sources",
85*d57664e9SAndroid Build Coastguard Worker    ],
86*d57664e9SAndroid Build Coastguard Worker    tools: ["protologtool"],
87*d57664e9SAndroid Build Coastguard Worker    cmd: "$(location protologtool) generate-viewer-config " +
88*d57664e9SAndroid Build Coastguard Worker        "--protolog-class com.android.internal.protolog.ProtoLog " +
89*d57664e9SAndroid Build Coastguard Worker        "--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " +
90*d57664e9SAndroid Build Coastguard Worker        "--loggroups-jar $(location :wm_shell_protolog-groups) " +
91*d57664e9SAndroid Build Coastguard Worker        "--viewer-config-type json " +
92*d57664e9SAndroid Build Coastguard Worker        "--viewer-config $(out) " +
93*d57664e9SAndroid Build Coastguard Worker        "$(locations :wm_shell-sources)",
94*d57664e9SAndroid Build Coastguard Worker    out: ["wm_shell_protolog.json"],
95*d57664e9SAndroid Build Coastguard Worker}
96*d57664e9SAndroid Build Coastguard Worker
97*d57664e9SAndroid Build Coastguard Workerjava_genrule {
98*d57664e9SAndroid Build Coastguard Worker    name: "gen-wmshell.protolog.pb",
99*d57664e9SAndroid Build Coastguard Worker    srcs: [
100*d57664e9SAndroid Build Coastguard Worker        ":wm_shell_protolog-groups",
101*d57664e9SAndroid Build Coastguard Worker        ":wm_shell-sources",
102*d57664e9SAndroid Build Coastguard Worker    ],
103*d57664e9SAndroid Build Coastguard Worker    tools: ["protologtool"],
104*d57664e9SAndroid Build Coastguard Worker    cmd: "$(location protologtool) generate-viewer-config " +
105*d57664e9SAndroid Build Coastguard Worker        "--protolog-class com.android.internal.protolog.ProtoLog " +
106*d57664e9SAndroid Build Coastguard Worker        "--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " +
107*d57664e9SAndroid Build Coastguard Worker        "--loggroups-jar $(location :wm_shell_protolog-groups) " +
108*d57664e9SAndroid Build Coastguard Worker        "--viewer-config-type proto " +
109*d57664e9SAndroid Build Coastguard Worker        "--viewer-config $(out) " +
110*d57664e9SAndroid Build Coastguard Worker        "$(locations :wm_shell-sources)",
111*d57664e9SAndroid Build Coastguard Worker    out: ["wmshell.protolog.pb"],
112*d57664e9SAndroid Build Coastguard Worker}
113*d57664e9SAndroid Build Coastguard Worker
114*d57664e9SAndroid Build Coastguard Workerjava_genrule {
115*d57664e9SAndroid Build Coastguard Worker    name: "protolog.json.gz",
116*d57664e9SAndroid Build Coastguard Worker    srcs: [":generate-wm_shell_protolog.json"],
117*d57664e9SAndroid Build Coastguard Worker    out: ["wmshell.protolog.json.gz"],
118*d57664e9SAndroid Build Coastguard Worker    cmd: "gzip -c < $(in) > $(out)",
119*d57664e9SAndroid Build Coastguard Worker}
120*d57664e9SAndroid Build Coastguard Worker
121*d57664e9SAndroid Build Coastguard Workerprebuilt_etc {
122*d57664e9SAndroid Build Coastguard Worker    name: "wmshell.protolog.json.gz",
123*d57664e9SAndroid Build Coastguard Worker    system_ext_specific: true,
124*d57664e9SAndroid Build Coastguard Worker    src: ":protolog.json.gz",
125*d57664e9SAndroid Build Coastguard Worker    filename_from_src: true,
126*d57664e9SAndroid Build Coastguard Worker}
127*d57664e9SAndroid Build Coastguard Worker
128*d57664e9SAndroid Build Coastguard Workerprebuilt_etc {
129*d57664e9SAndroid Build Coastguard Worker    name: "wmshell.protolog.pb",
130*d57664e9SAndroid Build Coastguard Worker    system_ext_specific: true,
131*d57664e9SAndroid Build Coastguard Worker    src: ":gen-wmshell.protolog.pb",
132*d57664e9SAndroid Build Coastguard Worker    filename_from_src: true,
133*d57664e9SAndroid Build Coastguard Worker}
134*d57664e9SAndroid Build Coastguard Worker
135*d57664e9SAndroid Build Coastguard Worker// End ProtoLog
136*d57664e9SAndroid Build Coastguard Worker
137*d57664e9SAndroid Build Coastguard Workerjava_library {
138*d57664e9SAndroid Build Coastguard Worker    name: "WindowManager-Shell-proto",
139*d57664e9SAndroid Build Coastguard Worker
140*d57664e9SAndroid Build Coastguard Worker    srcs: ["proto/*.proto"],
141*d57664e9SAndroid Build Coastguard Worker
142*d57664e9SAndroid Build Coastguard Worker    proto: {
143*d57664e9SAndroid Build Coastguard Worker        type: "nano",
144*d57664e9SAndroid Build Coastguard Worker    },
145*d57664e9SAndroid Build Coastguard Worker}
146*d57664e9SAndroid Build Coastguard Worker
147*d57664e9SAndroid Build Coastguard Workerjava_library {
148*d57664e9SAndroid Build Coastguard Worker    name: "WindowManager-Shell-lite-proto",
149*d57664e9SAndroid Build Coastguard Worker
150*d57664e9SAndroid Build Coastguard Worker    srcs: [
151*d57664e9SAndroid Build Coastguard Worker        "src/com/android/wm/shell/desktopmode/education/data/proto/**/*.proto",
152*d57664e9SAndroid Build Coastguard Worker        "src/com/android/wm/shell/desktopmode/persistence/*.proto",
153*d57664e9SAndroid Build Coastguard Worker    ],
154*d57664e9SAndroid Build Coastguard Worker    proto: {
155*d57664e9SAndroid Build Coastguard Worker        type: "lite",
156*d57664e9SAndroid Build Coastguard Worker    },
157*d57664e9SAndroid Build Coastguard Worker}
158*d57664e9SAndroid Build Coastguard Worker
159*d57664e9SAndroid Build Coastguard Workerandroid_library {
160*d57664e9SAndroid Build Coastguard Worker    name: "WindowManager-Shell",
161*d57664e9SAndroid Build Coastguard Worker    srcs: [
162*d57664e9SAndroid Build Coastguard Worker        "src/com/android/wm/shell/EventLogTags.logtags",
163*d57664e9SAndroid Build Coastguard Worker        ":wm_shell_protolog_src",
164*d57664e9SAndroid Build Coastguard Worker        // TODO(b/168581922) protologtool do not support kotlin(*.kt)
165*d57664e9SAndroid Build Coastguard Worker        ":wm_shell-sources-kt",
166*d57664e9SAndroid Build Coastguard Worker        ":wm_shell-aidls",
167*d57664e9SAndroid Build Coastguard Worker        ":wm_shell-shared-aidls",
168*d57664e9SAndroid Build Coastguard Worker    ],
169*d57664e9SAndroid Build Coastguard Worker    resource_dirs: [
170*d57664e9SAndroid Build Coastguard Worker        "res",
171*d57664e9SAndroid Build Coastguard Worker    ],
172*d57664e9SAndroid Build Coastguard Worker    static_libs: [
173*d57664e9SAndroid Build Coastguard Worker        "androidx.appcompat_appcompat",
174*d57664e9SAndroid Build Coastguard Worker        "androidx.core_core-ktx",
175*d57664e9SAndroid Build Coastguard Worker        "androidx.arch.core_core-runtime",
176*d57664e9SAndroid Build Coastguard Worker        "androidx.datastore_datastore",
177*d57664e9SAndroid Build Coastguard Worker        "androidx.compose.material3_material3",
178*d57664e9SAndroid Build Coastguard Worker        "androidx-constraintlayout_constraintlayout",
179*d57664e9SAndroid Build Coastguard Worker        "androidx.dynamicanimation_dynamicanimation",
180*d57664e9SAndroid Build Coastguard Worker        "androidx.recyclerview_recyclerview",
181*d57664e9SAndroid Build Coastguard Worker        "kotlinx-coroutines-android",
182*d57664e9SAndroid Build Coastguard Worker        "kotlinx-coroutines-core",
183*d57664e9SAndroid Build Coastguard Worker        "//frameworks/libs/systemui:com_android_systemui_shared_flags_lib",
184*d57664e9SAndroid Build Coastguard Worker        "//frameworks/libs/systemui:iconloader_base",
185*d57664e9SAndroid Build Coastguard Worker        "com_android_launcher3_flags_lib",
186*d57664e9SAndroid Build Coastguard Worker        "com_android_wm_shell_flags_lib",
187*d57664e9SAndroid Build Coastguard Worker        "PlatformAnimationLib",
188*d57664e9SAndroid Build Coastguard Worker        "WindowManager-Shell-proto",
189*d57664e9SAndroid Build Coastguard Worker        "WindowManager-Shell-lite-proto",
190*d57664e9SAndroid Build Coastguard Worker        "WindowManager-Shell-shared",
191*d57664e9SAndroid Build Coastguard Worker        "perfetto_trace_java_protos",
192*d57664e9SAndroid Build Coastguard Worker        "dagger2",
193*d57664e9SAndroid Build Coastguard Worker        "jsr330",
194*d57664e9SAndroid Build Coastguard Worker    ],
195*d57664e9SAndroid Build Coastguard Worker    libs: [
196*d57664e9SAndroid Build Coastguard Worker        // Soong fails to automatically add this dependency because all the
197*d57664e9SAndroid Build Coastguard Worker        // *.kt sources are inside a filegroup.
198*d57664e9SAndroid Build Coastguard Worker        "kotlin-annotations",
199*d57664e9SAndroid Build Coastguard Worker    ],
200*d57664e9SAndroid Build Coastguard Worker    flags_packages: [
201*d57664e9SAndroid Build Coastguard Worker        "com_android_wm_shell_flags",
202*d57664e9SAndroid Build Coastguard Worker    ],
203*d57664e9SAndroid Build Coastguard Worker    kotlincflags: ["-Xjvm-default=all"],
204*d57664e9SAndroid Build Coastguard Worker    manifest: "AndroidManifest.xml",
205*d57664e9SAndroid Build Coastguard Worker    plugins: ["dagger2-compiler"],
206*d57664e9SAndroid Build Coastguard Worker    use_resource_processor: true,
207*d57664e9SAndroid Build Coastguard Worker}
208*d57664e9SAndroid Build Coastguard Worker
209*d57664e9SAndroid Build Coastguard Workerjava_defaults {
210*d57664e9SAndroid Build Coastguard Worker    name: "wmshell_defaults",
211*d57664e9SAndroid Build Coastguard Worker    required: [
212*d57664e9SAndroid Build Coastguard Worker        "wmshell.protolog.json.gz",
213*d57664e9SAndroid Build Coastguard Worker        "wmshell.protolog.pb",
214*d57664e9SAndroid Build Coastguard Worker    ],
215*d57664e9SAndroid Build Coastguard Worker}
216