blob: 42188dec42369485ef8ae927753ba48f01703e7b [file] [log] [blame]
Winson Chung10a9b4b2019-12-18 10:01:36 -08001// Copyright (C) 2019 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
Bob Badour8a6a2bc2021-02-12 17:07:05 -080015package {
16 // See: http://go/android-license-faq
17 // A large-scale-change added 'default_applicable_licenses' to import
18 // all of the 'license_kinds' from "frameworks_base_license"
19 // to get the below license kinds:
20 // SPDX-license-identifier-Apache-2.0
21 default_applicable_licenses: ["frameworks_base_license"],
Liran Binyamin9ded80b2024-02-13 10:18:45 -050022 default_team: "trendy_team_multitasking_windowing",
Bob Badour8a6a2bc2021-02-12 17:07:05 -080023}
24
Winson Chungb754f522020-08-03 22:17:08 -070025// Begin ProtoLog
26java_library {
27 name: "wm_shell_protolog-groups",
28 srcs: [
29 "src/com/android/wm/shell/protolog/ShellProtoLogGroup.java",
30 ":protolog-common-src",
31 ],
32}
33
34filegroup {
35 name: "wm_shell-sources",
Bill Lin2b3bd572020-09-03 23:22:14 +080036 srcs: [
37 "src/**/*.java",
38 ],
39 path: "src",
40}
41
Winson Chung92a8e1a2021-10-16 21:44:25 -070042// Aidls which can be used directly downstream of this library
Evan Rosky14ea8c62021-09-30 17:28:35 -070043filegroup {
Winson Chung2b72add2021-02-02 23:27:07 -080044 name: "wm_shell-aidls",
45 srcs: [
46 "src/**/*.aidl",
47 ],
48 path: "src",
49}
50
Bill Lin2b3bd572020-09-03 23:22:14 +080051// TODO(b/168581922) protologtool do not support kotlin(*.kt)
52filegroup {
53 name: "wm_shell-sources-kt",
54 srcs: [
55 "src/**/*.kt",
56 ],
Winson Chungb754f522020-08-03 22:17:08 -070057 path: "src",
58}
59
Cole Faust5aeb9fd2024-10-22 16:30:57 -070060java_genrule {
Winson Chungb754f522020-08-03 22:17:08 -070061 name: "wm_shell_protolog_src",
62 srcs: [
Pablo Gamito5fe2c802024-02-12 12:48:48 +000063 ":protolog-impl",
Winson Chungb754f522020-08-03 22:17:08 -070064 ":wm_shell_protolog-groups",
65 ":wm_shell-sources",
66 ],
67 tools: ["protologtool"],
68 cmd: "$(location protologtool) transform-protolog-calls " +
Pablo Gamitof89a94d2024-06-28 10:40:42 +000069 "--protolog-class com.android.internal.protolog.ProtoLog " +
Ats Jenkf33f1da2021-12-14 14:10:20 -080070 "--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " +
71 "--loggroups-jar $(location :wm_shell_protolog-groups) " +
Pablo Gamito5fe2c802024-02-12 12:48:48 +000072 "--viewer-config-file-path /system_ext/etc/wmshell.protolog.pb " +
73 "--legacy-viewer-config-file-path /system_ext/etc/wmshell.protolog.json.gz " +
74 "--legacy-output-file-path /data/misc/wmtrace/shell_log.winscope " +
Ats Jenkf33f1da2021-12-14 14:10:20 -080075 "--output-srcjar $(out) " +
76 "$(locations :wm_shell-sources)",
Winson Chungb754f522020-08-03 22:17:08 -070077 out: ["wm_shell_protolog.srcjar"],
78}
79
Cole Faust5aeb9fd2024-10-22 16:30:57 -070080java_genrule {
Winson Chungb754f522020-08-03 22:17:08 -070081 name: "generate-wm_shell_protolog.json",
82 srcs: [
83 ":wm_shell_protolog-groups",
84 ":wm_shell-sources",
85 ],
86 tools: ["protologtool"],
87 cmd: "$(location protologtool) generate-viewer-config " +
Pablo Gamitof89a94d2024-06-28 10:40:42 +000088 "--protolog-class com.android.internal.protolog.ProtoLog " +
Ats Jenkf33f1da2021-12-14 14:10:20 -080089 "--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " +
90 "--loggroups-jar $(location :wm_shell_protolog-groups) " +
Pablo Gamito5fe2c802024-02-12 12:48:48 +000091 "--viewer-config-type json " +
92 "--viewer-config $(out) " +
Ats Jenkf33f1da2021-12-14 14:10:20 -080093 "$(locations :wm_shell-sources)",
Winson Chungb754f522020-08-03 22:17:08 -070094 out: ["wm_shell_protolog.json"],
95}
Ats Jenkf33f1da2021-12-14 14:10:20 -080096
Cole Faust5aeb9fd2024-10-22 16:30:57 -070097java_genrule {
Pablo Gamito5fe2c802024-02-12 12:48:48 +000098 name: "gen-wmshell.protolog.pb",
99 srcs: [
100 ":wm_shell_protolog-groups",
101 ":wm_shell-sources",
102 ],
103 tools: ["protologtool"],
104 cmd: "$(location protologtool) generate-viewer-config " +
Pablo Gamitof89a94d2024-06-28 10:40:42 +0000105 "--protolog-class com.android.internal.protolog.ProtoLog " +
Pablo Gamito5fe2c802024-02-12 12:48:48 +0000106 "--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " +
107 "--loggroups-jar $(location :wm_shell_protolog-groups) " +
108 "--viewer-config-type proto " +
109 "--viewer-config $(out) " +
110 "$(locations :wm_shell-sources)",
111 out: ["wmshell.protolog.pb"],
112}
113
Cole Faust5aeb9fd2024-10-22 16:30:57 -0700114java_genrule {
Hongwei Wang2b227ee2022-08-19 09:38:18 -0700115 name: "protolog.json.gz",
116 srcs: [":generate-wm_shell_protolog.json"],
117 out: ["wmshell.protolog.json.gz"],
Elliott Hughese135c402023-06-20 16:44:50 -0700118 cmd: "gzip -c < $(in) > $(out)",
Hongwei Wang2b227ee2022-08-19 09:38:18 -0700119}
120
121prebuilt_etc {
122 name: "wmshell.protolog.json.gz",
123 system_ext_specific: true,
124 src: ":protolog.json.gz",
125 filename_from_src: true,
126}
127
Pablo Gamito5fe2c802024-02-12 12:48:48 +0000128prebuilt_etc {
129 name: "wmshell.protolog.pb",
130 system_ext_specific: true,
131 src: ":gen-wmshell.protolog.pb",
132 filename_from_src: true,
133}
134
Winson Chungb754f522020-08-03 22:17:08 -0700135// End ProtoLog
136
Winson Chungeb1aa3d2020-08-25 19:02:29 -0700137java_library {
138 name: "WindowManager-Shell-proto",
139
140 srcs: ["proto/*.proto"],
141
142 proto: {
143 type: "nano",
144 },
145}
146
Shivangi Dubeya131137c2024-07-10 11:14:25 +0000147java_library {
148 name: "WindowManager-Shell-lite-proto",
149
Orhan Uysalbfd48622024-08-13 14:38:49 +0000150 srcs: [
151 "src/com/android/wm/shell/desktopmode/education/data/proto/**/*.proto",
152 "src/com/android/wm/shell/desktopmode/persistence/*.proto",
153 ],
Shivangi Dubeya131137c2024-07-10 11:14:25 +0000154 proto: {
155 type: "lite",
156 },
157}
158
Luca Zuccarinia8aca21fc2024-03-15 13:12:50 +0000159filegroup {
Todd Lee86bf28a2024-10-07 15:50:39 +0000160 name: "wm_shell-shared-utils",
161 srcs: [
162 "shared/src/com/android/wm/shell/shared/TransitionUtil.java",
163 ],
164}
165
166filegroup {
Luca Zuccarinia8aca21fc2024-03-15 13:12:50 +0000167 name: "wm_shell-shared-aidls",
168
169 srcs: [
170 "shared/**/*.aidl",
171 ],
172
173 path: "shared/src",
174}
175
Luca Zuccarinid6073dc2024-01-22 17:06:41 +0000176java_library {
177 name: "WindowManager-Shell-shared",
178
Liran Binyamin4180ef02024-03-26 09:56:38 -0400179 srcs: [
180 "shared/**/*.java",
181 "shared/**/*.kt",
Luca Zuccarinia8aca21fc2024-03-15 13:12:50 +0000182 ":wm_shell-shared-aidls",
Liran Binyamin4180ef02024-03-26 09:56:38 -0400183 ],
184 static_libs: [
Luca Zuccarinia7809272024-08-20 11:09:26 +0000185 "androidx.core_core-animation",
Liran Binyamin4180ef02024-03-26 09:56:38 -0400186 "androidx.dynamicanimation_dynamicanimation",
Luca Zuccarini42e79692024-03-14 15:57:46 +0000187 "jsr330",
Liran Binyamin4180ef02024-03-26 09:56:38 -0400188 ],
Luca Zuccarinia7809272024-08-20 11:09:26 +0000189 kotlincflags: ["-Xjvm-default=all"],
Luca Zuccarinid6073dc2024-01-22 17:06:41 +0000190}
191
Alina Zaidia4bd41d2024-07-05 15:07:26 +0000192java_library {
193 name: "WindowManager-Shell-shared-desktopMode",
194
195 srcs: [
196 "shared/**/desktopmode/*.java",
197 "shared/**/desktopmode/*.kt",
198 ],
Alina Zaidi0cf34342024-09-09 10:33:20 +0000199 static_libs: [
200 "com.android.window.flags.window-aconfig-java",
201 ],
Alina Zaidia4bd41d2024-07-05 15:07:26 +0000202}
203
Winson Chung10a9b4b2019-12-18 10:01:36 -0800204android_library {
205 name: "WindowManager-Shell",
206 srcs: [
Ben Murdoch234f8b62024-09-25 10:40:34 +0000207 "src/com/android/wm/shell/EventLogTags.logtags",
Winson Chungb754f522020-08-03 22:17:08 -0700208 ":wm_shell_protolog_src",
Bill Lin2b3bd572020-09-03 23:22:14 +0800209 // TODO(b/168581922) protologtool do not support kotlin(*.kt)
210 ":wm_shell-sources-kt",
Winson Chung2b72add2021-02-02 23:27:07 -0800211 ":wm_shell-aidls",
Luca Zuccarinia8091db2024-08-19 14:44:56 +0000212 ":wm_shell-shared-aidls",
Winson Chung10a9b4b2019-12-18 10:01:36 -0800213 ],
214 resource_dirs: [
215 "res",
216 ],
Winson Chungb754f522020-08-03 22:17:08 -0700217 static_libs: [
Tony Huangeb01a252020-10-27 11:37:11 +0800218 "androidx.appcompat_appcompat",
Jorge Gil4a0c2082023-09-05 16:18:24 +0000219 "androidx.core_core-ktx",
Tony Huangeb01a252020-10-27 11:37:11 +0800220 "androidx.arch.core_core-runtime",
Shivangi Dubeya131137c2024-07-10 11:14:25 +0000221 "androidx.datastore_datastore",
Jorge Gild45c35d2024-06-03 17:33:20 +0000222 "androidx.compose.material3_material3",
Ats Jenkf33f1da2021-12-14 14:10:20 -0800223 "androidx-constraintlayout_constraintlayout",
Bill Lin2b3bd572020-09-03 23:22:14 +0800224 "androidx.dynamicanimation_dynamicanimation",
Sunny Goyaldcdee332021-03-30 09:42:19 -0700225 "androidx.recyclerview_recyclerview",
Bill Lin2b3bd572020-09-03 23:22:14 +0800226 "kotlinx-coroutines-android",
227 "kotlinx-coroutines-core",
Luca Zuccarini1b8ed952024-04-24 10:17:48 +0000228 "//frameworks/libs/systemui:com_android_systemui_shared_flags_lib",
Peter Kalauskascd50f532024-04-02 15:41:14 -0700229 "//frameworks/libs/systemui:iconloader_base",
Winson Chungbfe7f262023-09-12 20:29:22 +0000230 "com_android_wm_shell_flags_lib",
Ivan Tkachenkoc715ed12024-09-25 10:58:00 +0000231 "PlatformAnimationLib",
Winson Chungeb1aa3d2020-08-25 19:02:29 -0700232 "WindowManager-Shell-proto",
Shivangi Dubeya131137c2024-07-10 11:14:25 +0000233 "WindowManager-Shell-lite-proto",
Luca Zuccarinid6073dc2024-01-22 17:06:41 +0000234 "WindowManager-Shell-shared",
Pablo Gamitod19d9912023-11-13 23:32:19 +0000235 "perfetto_trace_java_protos",
Winson Chungca5598d2021-11-04 19:22:25 -0700236 "dagger2",
Sunny Goyaldcdee332021-03-30 09:42:19 -0700237 "jsr330",
Winson Chungb754f522020-08-03 22:17:08 -0700238 ],
Colin Cross4a26fe82022-03-17 13:14:55 -0700239 libs: [
240 // Soong fails to automatically add this dependency because all the
241 // *.kt sources are inside a filegroup.
242 "kotlin-annotations",
243 ],
Ats Jenka4027032024-06-14 13:03:25 -0700244 flags_packages: [
245 "com_android_wm_shell_flags",
246 ],
Colin Cross6954ea72023-07-18 10:52:21 -0700247 kotlincflags: ["-Xjvm-default=all"],
Winson Chung10a9b4b2019-12-18 10:01:36 -0800248 manifest: "AndroidManifest.xml",
Winson Chungca5598d2021-11-04 19:22:25 -0700249 plugins: ["dagger2-compiler"],
Colin Cross085e8c92023-10-03 16:28:21 -0700250 use_resource_processor: true,
Dave Mankoff9179b302020-12-02 11:15:27 -0500251}
Pablo Gamito7edc95c2024-10-07 11:17:50 +0000252
253java_defaults {
254 name: "wmshell_defaults",
255 required: [
256 "wmshell.protolog.json.gz",
257 "wmshell.protolog.pb",
258 ],
259}