• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// 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
15package {
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"],
22    default_team: "trendy_team_multitasking_windowing",
23}
24
25// Begin ProtoLog
26java_library {
27    name: "wm_shell_protolog-groups",
28    srcs: [
29        "src/com/android/wm/shell/protolog/ShellProtoLogGroup.java",
30    ],
31    static_libs: [
32        "protolog-common-lib",
33    ],
34}
35
36filegroup {
37    name: "wm_shell-sources",
38    srcs: [
39        "src/**/*.java",
40    ],
41    path: "src",
42}
43
44// Aidls which can be used directly downstream of this library
45filegroup {
46    name: "wm_shell-aidls",
47    srcs: [
48        "src/**/*.aidl",
49    ],
50    path: "src",
51}
52
53// TODO(b/168581922) protologtool do not support kotlin(*.kt)
54filegroup {
55    name: "wm_shell-sources-kt",
56    srcs: [
57        "src/**/*.kt",
58    ],
59    path: "src",
60}
61
62java_genrule {
63    name: "wm_shell_protolog_src",
64    srcs: [
65        ":protolog-impl",
66        ":wm_shell-sources",
67        ":wm_shell_protolog-groups",
68    ],
69    tools: ["protologtool"],
70    cmd: "$(location protologtool) transform-protolog-calls " +
71        "--protolog-class com.android.internal.protolog.ProtoLog " +
72        "--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " +
73        "--loggroups-jar $(location :wm_shell_protolog-groups) " +
74        "--viewer-config-file-path /system_ext/etc/wmshell.protolog.pb " +
75        "--legacy-viewer-config-file-path /system_ext/etc/wmshell.protolog.json.gz " +
76        "--legacy-output-file-path /data/misc/wmtrace/shell_log.winscope " +
77        "--output-srcjar $(out) " +
78        "$(locations :wm_shell-sources)",
79    out: ["wm_shell_protolog.srcjar"],
80}
81
82java_genrule {
83    name: "generate-wm_shell_protolog.json",
84    srcs: [
85        ":wm_shell-sources",
86        ":wm_shell_protolog-groups",
87    ],
88    tools: ["protologtool"],
89    cmd: "$(location protologtool) generate-viewer-config " +
90        "--protolog-class com.android.internal.protolog.ProtoLog " +
91        "--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " +
92        "--loggroups-jar $(location :wm_shell_protolog-groups) " +
93        "--viewer-config-type json " +
94        "--viewer-config $(out) " +
95        "$(locations :wm_shell-sources)",
96    out: ["wm_shell_protolog.json"],
97}
98
99java_genrule {
100    name: "gen-wmshell.protolog.pb",
101    srcs: [
102        ":wm_shell-sources",
103        ":wm_shell_protolog-groups",
104    ],
105    tools: ["protologtool"],
106    cmd: "$(location protologtool) generate-viewer-config " +
107        "--protolog-class com.android.internal.protolog.ProtoLog " +
108        "--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " +
109        "--loggroups-jar $(location :wm_shell_protolog-groups) " +
110        "--viewer-config-type proto " +
111        "--viewer-config $(out) " +
112        "$(locations :wm_shell-sources)",
113    out: ["wmshell.protolog.pb"],
114}
115
116java_genrule {
117    name: "protolog.json.gz",
118    srcs: [":generate-wm_shell_protolog.json"],
119    out: ["wmshell.protolog.json.gz"],
120    cmd: "gzip -c < $(in) > $(out)",
121}
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
130prebuilt_etc {
131    name: "wmshell.protolog.pb",
132    system_ext_specific: true,
133    src: ":gen-wmshell.protolog.pb",
134    filename_from_src: true,
135}
136
137// End ProtoLog
138
139java_library {
140    name: "WindowManager-Shell-proto",
141
142    srcs: ["proto/*.proto"],
143
144    proto: {
145        type: "nano",
146    },
147}
148
149java_library {
150    name: "WindowManager-Shell-lite-proto",
151
152    srcs: [
153        "src/com/android/wm/shell/desktopmode/education/data/proto/**/*.proto",
154        "src/com/android/wm/shell/desktopmode/persistence/*.proto",
155    ],
156    proto: {
157        type: "lite",
158    },
159}
160
161android_library {
162    name: "WindowManager-Shell",
163    srcs: [
164        // TODO(b/168581922) protologtool do not support kotlin(*.kt)
165        ":wm_shell-aidls",
166        ":wm_shell-shared-aidls",
167        ":wm_shell-sources-kt",
168        ":wm_shell_protolog_src",
169        "src/com/android/wm/shell/EventLogTags.logtags",
170    ],
171    resource_dirs: [
172        "res",
173    ],
174    static_libs: [
175        "//frameworks/base/packages/SystemUI/aconfig:com_android_systemui_flags_lib",
176        "//frameworks/libs/systemui:com_android_systemui_shared_flags_lib",
177        "//frameworks/libs/systemui:iconloader_base",
178        "PlatformAnimationLib",
179        "WindowManager-Shell-lite-proto",
180        "WindowManager-Shell-proto",
181        "WindowManager-Shell-shared",
182        "androidx-constraintlayout_constraintlayout",
183        "androidx.appcompat_appcompat",
184        "androidx.arch.core_core-runtime",
185        "androidx.compose.material3_material3",
186        "androidx.core_core-ktx",
187        "androidx.datastore_datastore",
188        "androidx.dynamicanimation_dynamicanimation",
189        "androidx.recyclerview_recyclerview",
190        "com_android_launcher3_flags_lib",
191        "com_android_wm_shell_flags_lib",
192        "dagger2",
193        "jsr330",
194        "kotlinx-coroutines-android",
195        "kotlinx-coroutines-core",
196        "perfetto_trace_java_protos",
197    ],
198    libs: [
199        // Soong fails to automatically add this dependency because all the
200        // *.kt sources are inside a filegroup.
201        "kotlin-annotations",
202    ],
203    flags_packages: [
204        "com_android_wm_shell_flags",
205    ],
206    kotlincflags: ["-Xjvm-default=all"],
207    manifest: "AndroidManifest.xml",
208    plugins: ["dagger2-compiler"],
209    use_resource_processor: true,
210}
211
212java_defaults {
213    name: "wmshell_defaults",
214    required: [
215        "wmshell.protolog.json.gz",
216        "wmshell.protolog.pb",
217    ],
218}
219