blob: 73f9d28eabe5383bead8f3ad0fcf8a784d7b7eaa [file]
// 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) }