mirror of
https://github.com/fankes/moshi.git
synced 2025-10-20 00:19:21 +08:00
Upstream KSP implementation (#1393)
This commit is contained in:
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
|
||||
plugins {
|
||||
kotlin("jvm")
|
||||
kotlin("kapt")
|
||||
alias(libs.plugins.ksp)
|
||||
id("com.vanniktech.maven.publish")
|
||||
alias(libs.plugins.mavenShadow)
|
||||
}
|
||||
@@ -31,12 +31,12 @@ tasks.withType<KotlinCompile>().configureEach {
|
||||
freeCompilerArgs += listOf(
|
||||
"-Xopt-in=kotlin.RequiresOptIn",
|
||||
"-Xopt-in=com.squareup.kotlinpoet.metadata.KotlinPoetMetadataPreview",
|
||||
"-Xopt-in=com.squareup.kotlinpoet.ksp.KotlinPoetKspPreview",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<Test>().configureEach {
|
||||
// For kapt to work with kotlin-compile-testing
|
||||
jvmArgs(
|
||||
"--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
|
||||
"--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
|
||||
@@ -47,17 +47,15 @@ tasks.withType<Test>().configureEach {
|
||||
"--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED",
|
||||
"--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED",
|
||||
"--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
|
||||
"--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
|
||||
"--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"
|
||||
)
|
||||
}
|
||||
|
||||
val shade: Configuration = configurations.maybeCreate("compileShaded")
|
||||
configurations.getByName("compileOnly").extendsFrom(shade)
|
||||
dependencies {
|
||||
// Use `api` because kapt will not resolve `runtime` dependencies without it, only `compile`
|
||||
// https://youtrack.jetbrains.com/issue/KT-41702
|
||||
api(project(":moshi"))
|
||||
api(kotlin("reflect"))
|
||||
implementation(project(":moshi"))
|
||||
implementation(kotlin("reflect"))
|
||||
shade(libs.kotlinxMetadata) {
|
||||
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib")
|
||||
}
|
||||
@@ -67,16 +65,30 @@ dependencies {
|
||||
exclude(group = "com.squareup", module = "kotlinpoet")
|
||||
exclude(group = "com.google.guava")
|
||||
}
|
||||
api(libs.guava)
|
||||
api(libs.asm)
|
||||
shade(libs.kotlinpoet.ksp) {
|
||||
exclude(group = "org.jetbrains.kotlin")
|
||||
exclude(group = "com.squareup", module = "kotlinpoet")
|
||||
}
|
||||
implementation(libs.guava)
|
||||
implementation(libs.asm)
|
||||
|
||||
api(libs.autoService)
|
||||
kapt(libs.autoService.processor)
|
||||
api(libs.incap)
|
||||
kapt(libs.incap.processor)
|
||||
implementation(libs.autoService)
|
||||
ksp(libs.autoService.ksp)
|
||||
|
||||
// KSP deps
|
||||
compileOnly(libs.ksp)
|
||||
compileOnly(libs.ksp.api)
|
||||
compileOnly(libs.kotlin.compilerEmbeddable)
|
||||
// Always force the latest KSP version to match the one we're compiling against
|
||||
testImplementation(libs.ksp)
|
||||
testImplementation(libs.kotlin.compilerEmbeddable)
|
||||
testImplementation(libs.kotlinCompileTesting.ksp)
|
||||
|
||||
// Copy these again as they're not automatically included since they're shaded
|
||||
testImplementation(project(":moshi"))
|
||||
testImplementation(kotlin("reflect"))
|
||||
testImplementation(libs.kotlinpoet.metadata)
|
||||
testImplementation(libs.kotlinpoet.ksp)
|
||||
testImplementation(libs.junit)
|
||||
testImplementation(libs.truth)
|
||||
testImplementation(libs.kotlinCompileTesting)
|
||||
|
Reference in New Issue
Block a user