1*af87fb4bSXin Li import com.google.devtools.ksp.configureMetalava 2*af87fb4bSXin Li import org.jetbrains.kotlin.gradle.tasks.KotlinCompile 3*af87fb4bSXin Li 4*af87fb4bSXin Li description = "Kotlin Symbol Processing API" 5*af87fb4bSXin Li 6*af87fb4bSXin Li val signingKey: String? by project 7*af87fb4bSXin Li val signingPassword: String? by project 8*af87fb4bSXin Li val kotlinBaseVersion: String by project 9*af87fb4bSXin Li <lambda>null10*af87fb4bSXin Litasks.withType<KotlinCompile> { 11*af87fb4bSXin Li compilerOptions.freeCompilerArgs.add("-Xjvm-default=all-compatibility") 12*af87fb4bSXin Li } 13*af87fb4bSXin Li <lambda>null14*af87fb4bSXin Liplugins { 15*af87fb4bSXin Li kotlin("jvm") 16*af87fb4bSXin Li `maven-publish` 17*af87fb4bSXin Li signing 18*af87fb4bSXin Li id("org.jetbrains.dokka") version ("1.7.20") 19*af87fb4bSXin Li } 20*af87fb4bSXin Li <lambda>null21*af87fb4bSXin Lidependencies { 22*af87fb4bSXin Li api(kotlin("stdlib", kotlinBaseVersion)) 23*af87fb4bSXin Li } <lambda>null24*af87fb4bSXin Litasks { 25*af87fb4bSXin Li val sourcesJar by creating(Jar::class) { 26*af87fb4bSXin Li archiveClassifier.set("sources") 27*af87fb4bSXin Li from(sourceSets.main.get().allSource) 28*af87fb4bSXin Li } 29*af87fb4bSXin Li } 30*af87fb4bSXin Li <lambda>null31*af87fb4bSXin Lival dokkaJavadocJar by tasks.register<Jar>("dokkaJavadocJar") { 32*af87fb4bSXin Li dependsOn(tasks.dokkaJavadoc) 33*af87fb4bSXin Li from(tasks.dokkaJavadoc.flatMap { it.outputDirectory }) 34*af87fb4bSXin Li archiveClassifier.set("javadoc") 35*af87fb4bSXin Li } 36*af87fb4bSXin Li <lambda>null37*af87fb4bSXin Lipublishing { 38*af87fb4bSXin Li publications { 39*af87fb4bSXin Li create<MavenPublication>("default") { 40*af87fb4bSXin Li artifactId = "symbol-processing-api" 41*af87fb4bSXin Li from(components["java"]) 42*af87fb4bSXin Li artifact(tasks["sourcesJar"]) 43*af87fb4bSXin Li artifact(tasks["dokkaJavadocJar"]) 44*af87fb4bSXin Li pom { 45*af87fb4bSXin Li name.set("com.google.devtools.ksp:symbol-processing-api") 46*af87fb4bSXin Li description.set("Symbol processing for Kotlin") 47*af87fb4bSXin Li } 48*af87fb4bSXin Li } 49*af87fb4bSXin Li } 50*af87fb4bSXin Li } 51*af87fb4bSXin Li <lambda>null52*af87fb4bSXin Lisigning { 53*af87fb4bSXin Li isRequired = hasProperty("signingKey") 54*af87fb4bSXin Li useInMemoryPgpKeys(signingKey, signingPassword) 55*af87fb4bSXin Li sign(extensions.getByType<PublishingExtension>().publications) 56*af87fb4bSXin Li } 57*af87fb4bSXin Li 58*af87fb4bSXin Li configureMetalava() 59