blob: 310300d2f32aac4e041837e276b58c62f61b369f [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// Sources that have no dependencies that can be used directly downstream of this library
Luca Zuccarinid6073dc2024-01-22 17:06:41 +000043// TODO(b/322791067): move these sources to WindowManager-Shell-shared
Winson Chung2b72add2021-02-02 23:27:07 -080044filegroup {
Evan Rosky14ea8c62021-09-30 17:28:35 -070045 name: "wm_shell_util-sources",
46 srcs: [
Pat Manningf7d61d72022-09-07 17:33:41 +010047 "src/com/android/wm/shell/animation/Interpolators.java",
Ivan Tkachenko1ef7e182023-06-13 18:17:00 +010048 "src/com/android/wm/shell/animation/PhysicsAnimator.kt",
49 "src/com/android/wm/shell/common/bubbles/*.kt",
50 "src/com/android/wm/shell/common/bubbles/*.java",
51 "src/com/android/wm/shell/common/magnetictarget/MagnetizedObject.kt",
52 "src/com/android/wm/shell/common/split/SplitScreenConstants.java",
53 "src/com/android/wm/shell/common/TransactionPool.java",
54 "src/com/android/wm/shell/common/TriangleShape.java",
55 "src/com/android/wm/shell/draganddrop/DragAndDropConstants.java",
Hongwei Wangbe31a562023-01-26 13:10:28 -080056 "src/com/android/wm/shell/pip/PipContentOverlay.java",
Pat Manningf7d61d72022-09-07 17:33:41 +010057 "src/com/android/wm/shell/startingsurface/SplashScreenExitAnimationUtils.java",
Ivan Tkachenko1ef7e182023-06-13 18:17:00 +010058 "src/com/android/wm/shell/sysui/ShellSharedConstants.java",
59 "src/com/android/wm/shell/util/**/*.java",
Evan Rosky14ea8c62021-09-30 17:28:35 -070060 ],
61 path: "src",
62}
63
Winson Chung92a8e1a2021-10-16 21:44:25 -070064// Aidls which can be used directly downstream of this library
Evan Rosky14ea8c62021-09-30 17:28:35 -070065filegroup {
Winson Chung2b72add2021-02-02 23:27:07 -080066 name: "wm_shell-aidls",
67 srcs: [
68 "src/**/*.aidl",
69 ],
70 path: "src",
71}
72
Bill Lin2b3bd572020-09-03 23:22:14 +080073// TODO(b/168581922) protologtool do not support kotlin(*.kt)
74filegroup {
75 name: "wm_shell-sources-kt",
76 srcs: [
77 "src/**/*.kt",
78 ],
Winson Chungb754f522020-08-03 22:17:08 -070079 path: "src",
80}
81
82genrule {
83 name: "wm_shell_protolog_src",
84 srcs: [
85 ":wm_shell_protolog-groups",
86 ":wm_shell-sources",
87 ],
88 tools: ["protologtool"],
89 cmd: "$(location protologtool) transform-protolog-calls " +
Ats Jenkf33f1da2021-12-14 14:10:20 -080090 "--protolog-class com.android.internal.protolog.common.ProtoLog " +
91 "--protolog-impl-class com.android.wm.shell.protolog.ShellProtoLogImpl " +
92 "--protolog-cache-class com.android.wm.shell.protolog.ShellProtoLogCache " +
93 "--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " +
94 "--loggroups-jar $(location :wm_shell_protolog-groups) " +
95 "--output-srcjar $(out) " +
96 "$(locations :wm_shell-sources)",
Winson Chungb754f522020-08-03 22:17:08 -070097 out: ["wm_shell_protolog.srcjar"],
98}
99
100genrule {
101 name: "generate-wm_shell_protolog.json",
102 srcs: [
103 ":wm_shell_protolog-groups",
104 ":wm_shell-sources",
105 ],
106 tools: ["protologtool"],
107 cmd: "$(location protologtool) generate-viewer-config " +
Ats Jenkf33f1da2021-12-14 14:10:20 -0800108 "--protolog-class com.android.internal.protolog.common.ProtoLog " +
109 "--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " +
110 "--loggroups-jar $(location :wm_shell_protolog-groups) " +
111 "--viewer-conf $(out) " +
112 "$(locations :wm_shell-sources)",
Winson Chungb754f522020-08-03 22:17:08 -0700113 out: ["wm_shell_protolog.json"],
114}
Ats Jenkf33f1da2021-12-14 14:10:20 -0800115
Hongwei Wang2b227ee2022-08-19 09:38:18 -0700116genrule {
117 name: "protolog.json.gz",
118 srcs: [":generate-wm_shell_protolog.json"],
119 out: ["wmshell.protolog.json.gz"],
Elliott Hughese135c402023-06-20 16:44:50 -0700120 cmd: "gzip -c < $(in) > $(out)",
Hongwei Wang2b227ee2022-08-19 09:38:18 -0700121}
122
123prebuilt_etc {
124 name: "wmshell.protolog.json.gz",
125 system_ext_specific: true,
126 src: ":protolog.json.gz",
127 filename_from_src: true,
128}
129
Winson Chungb754f522020-08-03 22:17:08 -0700130// End ProtoLog
131
Winson Chungeb1aa3d2020-08-25 19:02:29 -0700132java_library {
133 name: "WindowManager-Shell-proto",
134
135 srcs: ["proto/*.proto"],
136
137 proto: {
138 type: "nano",
139 },
140}
141
Luca Zuccarinid6073dc2024-01-22 17:06:41 +0000142java_library {
143 name: "WindowManager-Shell-shared",
144
145 srcs: ["shared/**/*.java"],
146}
147
Winson Chung10a9b4b2019-12-18 10:01:36 -0800148android_library {
149 name: "WindowManager-Shell",
150 srcs: [
Winson Chungb754f522020-08-03 22:17:08 -0700151 ":wm_shell_protolog_src",
Bill Lin2b3bd572020-09-03 23:22:14 +0800152 // TODO(b/168581922) protologtool do not support kotlin(*.kt)
153 ":wm_shell-sources-kt",
Winson Chung2b72add2021-02-02 23:27:07 -0800154 ":wm_shell-aidls",
Winson Chung10a9b4b2019-12-18 10:01:36 -0800155 ],
156 resource_dirs: [
157 "res",
158 ],
Winson Chungb754f522020-08-03 22:17:08 -0700159 static_libs: [
Tony Huangeb01a252020-10-27 11:37:11 +0800160 "androidx.appcompat_appcompat",
Jeff DeCew86e318e2023-07-27 11:00:36 -0400161 "androidx.core_core-animation",
Jorge Gil4a0c2082023-09-05 16:18:24 +0000162 "androidx.core_core-ktx",
Tony Huangeb01a252020-10-27 11:37:11 +0800163 "androidx.arch.core_core-runtime",
Ats Jenkf33f1da2021-12-14 14:10:20 -0800164 "androidx-constraintlayout_constraintlayout",
Bill Lin2b3bd572020-09-03 23:22:14 +0800165 "androidx.dynamicanimation_dynamicanimation",
Sunny Goyaldcdee332021-03-30 09:42:19 -0700166 "androidx.recyclerview_recyclerview",
Bill Lin2b3bd572020-09-03 23:22:14 +0800167 "kotlinx-coroutines-android",
168 "kotlinx-coroutines-core",
Tony Huangeb01a252020-10-27 11:37:11 +0800169 "iconloader_base",
Winson Chungbfe7f262023-09-12 20:29:22 +0000170 "com_android_wm_shell_flags_lib",
Winson Chungc3c3e962023-11-30 22:43:38 +0000171 "com.android.window.flags.window-aconfig-java",
Winson Chungeb1aa3d2020-08-25 19:02:29 -0700172 "WindowManager-Shell-proto",
Luca Zuccarinid6073dc2024-01-22 17:06:41 +0000173 "WindowManager-Shell-shared",
Pablo Gamitod19d9912023-11-13 23:32:19 +0000174 "perfetto_trace_java_protos",
Winson Chungca5598d2021-11-04 19:22:25 -0700175 "dagger2",
Sunny Goyaldcdee332021-03-30 09:42:19 -0700176 "jsr330",
Winson Chungb754f522020-08-03 22:17:08 -0700177 ],
Colin Cross4a26fe82022-03-17 13:14:55 -0700178 libs: [
179 // Soong fails to automatically add this dependency because all the
180 // *.kt sources are inside a filegroup.
181 "kotlin-annotations",
182 ],
Colin Cross6954ea72023-07-18 10:52:21 -0700183 kotlincflags: ["-Xjvm-default=all"],
Winson Chung10a9b4b2019-12-18 10:01:36 -0800184 manifest: "AndroidManifest.xml",
Winson Chungca5598d2021-11-04 19:22:25 -0700185 plugins: ["dagger2-compiler"],
Colin Cross085e8c92023-10-03 16:28:21 -0700186 use_resource_processor: true,
Dave Mankoff9179b302020-12-02 11:15:27 -0500187}
Liran Binyamin232a69872023-10-26 16:45:31 -0400188
189android_app {
190 name: "WindowManagerShellRobolectric",
191 platform_apis: true,
192 static_libs: [
193 "WindowManager-Shell",
194 ],
195 manifest: "multivalentTests/AndroidManifestRobolectric.xml",
196 use_resource_processor: true,
197}
198
199android_robolectric_test {
200 name: "WMShellRobolectricTests",
201 instrumentation_for: "WindowManagerShellRobolectric",
202 upstream: true,
203 java_resource_dirs: [
204 "multivalentTests/robolectric/config",
205 ],
206 srcs: [
207 "multivalentTests/src/**/*.kt",
208 ],
209 static_libs: [
210 "junit",
211 "androidx.test.runner",
212 "androidx.test.rules",
213 "androidx.test.ext.junit",
214 "mockito-robolectric-prebuilt",
215 "mockito-kotlin2",
216 "truth",
217 ],
218}
219
220android_test {
221 name: "WMShellMultivalentTestsOnDevice",
222 srcs: [
223 "multivalentTests/src/**/*.kt",
224 ],
225 static_libs: [
226 "WindowManager-Shell",
227 "junit",
228 "androidx.test.runner",
229 "androidx.test.rules",
230 "androidx.test.ext.junit",
231 "frameworks-base-testutils",
232 "mockito-kotlin2",
233 "mockito-target-extended-minus-junit4",
234 "truth",
235 "platform-test-annotations",
236 "platform-test-rules",
237 ],
238 libs: [
239 "android.test.base",
240 "android.test.runner",
241 ],
242 jni_libs: [
243 "libdexmakerjvmtiagent",
244 "libstaticjvmtiagent",
245 ],
246 kotlincflags: ["-Xjvm-default=all"],
247 optimize: {
248 enabled: false,
249 },
250 test_suites: ["device-tests"],
251 platform_apis: true,
252 certificate: "platform",
253 aaptflags: [
254 "--extra-packages",
255 "com.android.wm.shell",
256 ],
257 manifest: "multivalentTests/AndroidManifest.xml",
258}