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} 23 24// Begin ProtoLog 25java_library { 26 name: "wm_shell_protolog-groups", 27 srcs: [ 28 "src/com/android/wm/shell/protolog/ShellProtoLogGroup.java", 29 ":protolog-common-src", 30 ], 31} 32 33filegroup { 34 name: "wm_shell-sources", 35 srcs: [ 36 "src/**/*.java", 37 ], 38 path: "src", 39} 40 41// Sources that have no dependencies that can be used directly downstream of this library 42filegroup { 43 name: "wm_shell_util-sources", 44 srcs: [ 45 "src/com/android/wm/shell/util/**/*.java", 46 "src/com/android/wm/shell/common/split/SplitScreenConstants.java" 47 ], 48 path: "src", 49} 50 51// Aidls which can be used directly downstream of this library 52filegroup { 53 name: "wm_shell-aidls", 54 srcs: [ 55 "src/**/*.aidl", 56 ], 57 path: "src", 58} 59 60// TODO(b/168581922) protologtool do not support kotlin(*.kt) 61filegroup { 62 name: "wm_shell-sources-kt", 63 srcs: [ 64 "src/**/*.kt", 65 ], 66 path: "src", 67} 68 69genrule { 70 name: "wm_shell_protolog_src", 71 srcs: [ 72 ":wm_shell_protolog-groups", 73 ":wm_shell-sources", 74 ], 75 tools: ["protologtool"], 76 cmd: "$(location protologtool) transform-protolog-calls " + 77 "--protolog-class com.android.internal.protolog.common.ProtoLog " + 78 "--protolog-impl-class com.android.wm.shell.protolog.ShellProtoLogImpl " + 79 "--protolog-cache-class com.android.wm.shell.protolog.ShellProtoLogCache " + 80 "--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " + 81 "--loggroups-jar $(location :wm_shell_protolog-groups) " + 82 "--output-srcjar $(out) " + 83 "$(locations :wm_shell-sources)", 84 out: ["wm_shell_protolog.srcjar"], 85} 86 87genrule { 88 name: "generate-wm_shell_protolog.json", 89 srcs: [ 90 ":wm_shell_protolog-groups", 91 ":wm_shell-sources", 92 ], 93 tools: ["protologtool"], 94 cmd: "$(location protologtool) generate-viewer-config " + 95 "--protolog-class com.android.internal.protolog.common.ProtoLog " + 96 "--loggroups-class com.android.wm.shell.protolog.ShellProtoLogGroup " + 97 "--loggroups-jar $(location :wm_shell_protolog-groups) " + 98 "--viewer-conf $(out) " + 99 "$(locations :wm_shell-sources)", 100 out: ["wm_shell_protolog.json"], 101} 102// End ProtoLog 103 104java_library { 105 name: "WindowManager-Shell-proto", 106 107 srcs: ["proto/*.proto"], 108 109 proto: { 110 type: "nano", 111 }, 112} 113 114android_library { 115 name: "WindowManager-Shell", 116 srcs: [ 117 ":wm_shell_protolog_src", 118 // TODO(b/168581922) protologtool do not support kotlin(*.kt) 119 ":wm_shell-sources-kt", 120 ":wm_shell-aidls", 121 ], 122 resource_dirs: [ 123 "res", 124 ], 125 java_resources: [ 126 ":generate-wm_shell_protolog.json" 127 ], 128 static_libs: [ 129 "androidx.appcompat_appcompat", 130 "androidx.arch.core_core-runtime", 131 "androidx.dynamicanimation_dynamicanimation", 132 "androidx.recyclerview_recyclerview", 133 "kotlinx-coroutines-android", 134 "kotlinx-coroutines-core", 135 "iconloader_base", 136 "protolog-lib", 137 "WindowManager-Shell-proto", 138 "dagger2", 139 "jsr330", 140 ], 141 kotlincflags: ["-Xjvm-default=enable"], 142 manifest: "AndroidManifest.xml", 143 plugins: ["dagger2-compiler"], 144} 145