diff options
author | Ting-Yuan Huang <laszio@google.com> | 2022-02-25 01:50:37 -0800 |
---|---|---|
committer | laszio <ting-yuan@users.noreply.github.com> | 2022-02-25 13:43:16 -0800 |
commit | 5480926ad3c5df586fa8fef3ea339caa343e216f (patch) | |
tree | 8f117b628fe61657e1967163689388d29f7c2f12 /buildSrc | |
parent | 2943cb08c73fb9af25d08e1b81961775979ea1c4 (diff) | |
download | ksp-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.kt | 7 |
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") |