| /* |
| * Copyright 2019 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| import androidx.build.BuildServerConfigurationKt |
| |
| plugins { |
| id("java-library") |
| id("com.google.protobuf") |
| } |
| |
| dependencies { |
| implementation(libs.protobufLite) |
| } |
| |
| tasks.withType(Jar) { |
| destinationDirectory.set(BuildServerConfigurationKt.getDistributionDirectory(rootProject)) |
| } |
| |
| protobuf { |
| protoc { |
| artifact = libs.protobufCompiler.get() |
| } |
| |
| generateProtoTasks { |
| all().each { task -> |
| task.builtins { |
| java { |
| option "lite" |
| } |
| } |
| } |
| } |
| } |
| |
| // Create export artifact for for JarJaring |
| def preferencesProtoJarJarTask = tasks.register("exportJar", Jar) { |
| archiveBaseName.set("export") |
| from(sourceSets.main.output) |
| // The proto-lite dependency includes .proto files, which are not used by screenshots. When apps |
| // depend on screenshot as well as proto-lite directly, these files conflict since jarjar only |
| // renames the java classes. Remove them here since they are unused. |
| exclude("**/*.proto") |
| |
| from(zipTree(configurations.detachedConfiguration( |
| dependencies.create(libs.protobufLite.get())).getSingleFile())) |
| } |
| |
| def jarjarConf = configurations.register("export") |
| artifacts.add(jarjarConf.name, preferencesProtoJarJarTask.flatMap { it.archiveFile }) |