| // Copyright (c) 2026, the R8 project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import com.google.protobuf.gradle.proto |
| import org.gradle.api.tasks.bundling.Jar |
| |
| plugins { |
| id("org.jetbrains.kotlin.jvm") |
| id("r8-conventions") |
| id("dependencies-plugin") |
| id("net.ltgt.errorprone") |
| id("com.google.protobuf") |
| } |
| |
| tasks.named("generateProto") { dependsOn(":third_party:downloadDeps") } |
| |
| java { |
| sourceSets.main.configure { |
| java.srcDir(getRoot().resolveAll("src", "libanalyzer", "java")) |
| proto { srcDir(getRoot().resolveAll("src", "libanalyzer", "proto")) } |
| } |
| } |
| |
| dependencies { |
| compileOnly(libs.guava) |
| compileOnly(libs.protobuf) |
| compileOnly(project(":keepanno", "keepannoClasses")) |
| compileOnly(project(":main", "mainClassesOutput")) |
| } |
| |
| val jarTask = |
| tasks.named<Jar>("jar") { |
| exclude("libraryanalyzerresult.proto") |
| exclude("com/android/tools/r8/libanalyzer/proto/**") |
| archiveFileName.set("libanalyzer-exclude-deps.jar") |
| destinationDirectory.set(layout.buildDirectory.dir("sub-libs")) |
| } |
| |
| val protoJarTask = |
| tasks.register<Jar>("protoJar") { |
| from(sourceSets.main.get().output) |
| include("com/android/tools/r8/libanalyzer/proto/**") |
| archiveFileName.set("libanalyzer-proto.jar") |
| destinationDirectory.set(layout.buildDirectory.dir("sub-libs")) |
| } |
| |
| val libanalyzerJar by configurations.consumable("libanalyzer-jar") { outgoing.artifact(jarTask) } |
| |
| val libanalyzerProtoJar by |
| configurations.consumable("libanalyzer-proto-jar") { outgoing.artifact(protoJarTask) } |
| |
| val compileJavaJarTask = |
| tasks.register<Jar>("compileJavaJar") { |
| from(tasks.named("compileJava")) |
| archiveFileName.set("libanalyzer-compile-java.jar") |
| destinationDirectory.set(project.layout.buildDirectory.dir("sub-libs")) |
| } |
| |
| val libanalyzerCompileJava by |
| configurations.consumable("libanalyzer-compile-java") { outgoing.artifact(compileJavaJarTask) } |