aboutsummaryrefslogtreecommitdiff
path: root/api/build.gradle.kts
diff options
context:
space:
mode:
Diffstat (limited to 'api/build.gradle.kts')
-rw-r--r--api/build.gradle.kts58
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()