diff options
Diffstat (limited to 'api/build.gradle.kts')
-rw-r--r-- | api/build.gradle.kts | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/api/build.gradle.kts b/api/build.gradle.kts new file mode 100644 index 00000000..b3a2f6c6 --- /dev/null +++ b/api/build.gradle.kts @@ -0,0 +1,58 @@ +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<KotlinCompile> { + compilerOptions.freeCompilerArgs.add("-Xjvm-default=all-compatibility") +} + +plugins { + kotlin("jvm") + `maven-publish` + signing + id("org.jetbrains.dokka") version ("1.7.20") +} + +dependencies { + api(kotlin("stdlib", kotlinBaseVersion)) +} +tasks { + val sourcesJar by creating(Jar::class) { + archiveClassifier.set("sources") + from(sourceSets.main.get().allSource) + } +} + +val dokkaJavadocJar by tasks.register<Jar>("dokkaJavadocJar") { + dependsOn(tasks.dokkaJavadoc) + from(tasks.dokkaJavadoc.flatMap { it.outputDirectory }) + archiveClassifier.set("javadoc") +} + +publishing { + publications { + create<MavenPublication>("default") { + artifactId = "symbol-processing-api" + from(components["java"]) + artifact(tasks["sourcesJar"]) + artifact(tasks["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() |