aboutsummaryrefslogtreecommitdiff
path: root/buildSrc
diff options
context:
space:
mode:
authorTing-Yuan Huang <laszio@google.com>2022-02-25 01:50:37 -0800
committerlaszio <ting-yuan@users.noreply.github.com>2022-02-25 13:43:16 -0800
commit5480926ad3c5df586fa8fef3ea339caa343e216f (patch)
tree8f117b628fe61657e1967163689388d29f7c2f12 /buildSrc
parent2943cb08c73fb9af25d08e1b81961775979ea1c4 (diff)
downloadksp-5480926ad3c5df586fa8fef3ea339caa343e216f.tar.gz
Pass jdk and compile classpath to metalava
Diffstat (limited to 'buildSrc')
-rw-r--r--buildSrc/src/main/kotlin/com/google/devtools/ksp/ApiCheck.kt7
1 files changed, 7 insertions, 0 deletions
diff --git a/buildSrc/src/main/kotlin/com/google/devtools/ksp/ApiCheck.kt b/buildSrc/src/main/kotlin/com/google/devtools/ksp/ApiCheck.kt
index ddd04a29..03a07b6d 100644
--- a/buildSrc/src/main/kotlin/com/google/devtools/ksp/ApiCheck.kt
+++ b/buildSrc/src/main/kotlin/com/google/devtools/ksp/ApiCheck.kt
@@ -54,6 +54,8 @@ fun Project.configureMetalava() {
private fun JavaExec.configureCommonMetalavaArgs(
project: Project
) {
+ val jdkHome = org.gradle.internal.jvm.Jvm.current().getJavaHome().absolutePath
+ val compileClasspath = project.getCompileClasspath()
val apiFiles = project.fileTree(project.projectDir).also {
it.include("**/*.kt")
it.include("**/*.java")
@@ -65,10 +67,15 @@ private fun JavaExec.configureCommonMetalavaArgs(
classpath = project.getMetalavaConfiguration()
main = "com.android.tools.metalava.Driver"
args = listOf(
+ "--jdk-home", jdkHome,
+ "--classpath", compileClasspath,
"--source-files",
) + apiFiles.files.map { it.absolutePath }
}
+private fun Project.getCompileClasspath(): String =
+ configurations.findByName("compileClasspath")!!.files.map { it.absolutePath }.joinToString(":")
+
private fun Project.getMetalavaConfiguration(): Configuration {
return configurations.findByName("metalava") ?: configurations.create("metalava") {
val dependency = dependencies.create("com.android.tools.metalava:metalava:1.0.0-alpha04")