diff options
Diffstat (limited to 'gradle-plugin/build.gradle.kts')
-rw-r--r-- | gradle-plugin/build.gradle.kts | 33 |
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 }) + } + } +} |