| import com.google.devtools.ksp.configureMetalava | |
| import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode | |
| import org.jetbrains.kotlin.gradle.tasks.KotlinCompile | |
| description = "Kotlin Symbol Processing API" | |
| val signingKey: String? by project | |
| val signingPassword: String? by project | |
| tasks.withType<KotlinCompile> { | |
| compilerOptions { | |
| jvmDefault.set(JvmDefaultMode.ENABLE) | |
| } | |
| } | |
| plugins { | |
| kotlin("jvm") | |
| `maven-publish` | |
| signing | |
| id("org.jetbrains.dokka") | |
| } | |
| val sourceJar = | |
| tasks.register<Jar>("sourcesJar") { | |
| archiveClassifier.set("sources") | |
| from(sourceSets.main.map { it.allSource }) | |
| } | |
| val dokkaJavadocJar = | |
| tasks.register<Jar>("dokkaJavadocJar") { | |
| archiveClassifier.set("javadoc") | |
| from(tasks.dokkaJavadoc.flatMap { it.outputDirectory }) | |
| } | |
| publishing { | |
| publications { | |
| create<MavenPublication>("default") { | |
| artifactId = "symbol-processing-api" | |
| from(components["java"]) | |
| artifact(sourceJar) | |
| artifact(dokkaJavadocJar) | |
| pom { | |
| name.set("com.google.devtools.ksp:symbol-processing-api") | |
| description.set("Symbol processing for Kotlin") | |
| } | |
| } | |
| } | |
| } | |
| signing { | |
| isRequired = hasProperty("signingKey") | |
| useInMemoryPgpKeys(signingKey, signingPassword) | |
| sign(extensions.getByType<PublishingExtension>().publications) | |
| } | |
| configureMetalava() |