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