import com.google.devtools.ksp.configureMetalava import org.jetbrains.kotlin.gradle.tasks.KotlinCompile description = "Kotlin Symbol Processing API" val signingKey: String? by project val signingPassword: String? by project val kotlinBaseVersion: String by project tasks.withType { compilerOptions.freeCompilerArgs.add("-Xjvm-default=all-compatibility") } plugins { kotlin("jvm") `maven-publish` signing id("org.jetbrains.dokka") } val sourceJar = tasks.register("sourcesJar") { archiveClassifier.set("sources") from(sourceSets.main.map { it.allSource }) } val dokkaJavadocJar = tasks.register("dokkaJavadocJar") { archiveClassifier.set("javadoc") from(tasks.dokkaJavadoc.flatMap { it.outputDirectory }) } publishing { publications { create("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().publications) } configureMetalava()