aboutsummaryrefslogtreecommitdiff
path: root/gradle-plugin/build.gradle.kts
diff options
context:
space:
mode:
Diffstat (limited to 'gradle-plugin/build.gradle.kts')
-rw-r--r--gradle-plugin/build.gradle.kts33
1 files changed, 33 insertions, 0 deletions
diff --git a/gradle-plugin/build.gradle.kts b/gradle-plugin/build.gradle.kts
index 934cb8bd..41dfe32b 100644
--- a/gradle-plugin/build.gradle.kts
+++ b/gradle-plugin/build.gradle.kts
@@ -123,3 +123,36 @@ tasks.named<Test>("test").configure {
dependsOn(":gradle-plugin:publishAllPublicationsToTestRepository")
dependsOn(":symbol-processing:publishAllPublicationsToTestRepository")
}
+
+abstract class WriteVersionSrcTask @Inject constructor(
+ @get:Input val kspVersion: String,
+ @get:Input val kotlinVersion: String,
+ @get:org.gradle.api.tasks.OutputDirectory val outputSrcDir: File
+) : DefaultTask() {
+ @TaskAction
+ fun generate() {
+ File(outputSrcDir, "KSPVersions.kt").writeText(
+ """
+ package com.google.devtools.ksp.gradle
+ val KSP_KOTLIN_BASE_VERSION = "$kotlinVersion"
+ val KSP_VERSION = "$kspVersion"
+ """.trimIndent()
+ )
+ }
+}
+
+val kspVersionDir = File(project.buildDir, "generated/ksp-versions")
+val writeVersionSrcTask = tasks.register<WriteVersionSrcTask>(
+ "generateKSPVersions",
+ version.toString(),
+ kotlinBaseVersion,
+ kspVersionDir
+)
+
+kotlin {
+ sourceSets {
+ main {
+ kotlin.srcDir(writeVersionSrcTask.map { it.outputSrcDir })
+ }
+ }
+}