@@ -47,6 +47,8 @@ import java.util.stream.Stream
4747import kotlin.io.path.exists
4848
4949private const val SOURCE_JARS_DIR = " _srcjars"
50+ private const val API_VERSION_ARG = " -api-version"
51+ private const val LANGUAGE_VERSION_ARG = " -language-version"
5052
5153fun JvmCompilationTask.codeGenArgs (): CompilationArgs =
5254 CompilationArgs ()
@@ -55,7 +57,7 @@ fun JvmCompilationTask.codeGenArgs(): CompilationArgs =
5557 }.flag(" -d" , directories.classes)
5658 .values(info.passthroughFlagsList)
5759
58- fun JvmCompilationTask.baseArgs (): CompilationArgs {
60+ fun JvmCompilationTask.baseArgs (overrides : Map < String , String > = emptyMap() ): CompilationArgs {
5961 val classpath =
6062 when (info.reducedClasspathMode) {
6163 " KOTLINBUILDER_REDUCED" -> {
@@ -83,8 +85,11 @@ fun JvmCompilationTask.baseArgs(): CompilationArgs {
8385 it
8486 .map(Path ::toString)
8587 .joinToString(File .pathSeparator)
86- }.flag(" -api-version" , info.toolchainInfo.common.apiVersion)
87- .flag(" -language-version" , info.toolchainInfo.common.languageVersion)
88+ }.flag(API_VERSION_ARG , overrides[API_VERSION_ARG ] ? : info.toolchainInfo.common.apiVersion)
89+ .flag(
90+ LANGUAGE_VERSION_ARG ,
91+ overrides[LANGUAGE_VERSION_ARG ] ? : info.toolchainInfo.common.languageVersion,
92+ )
8893 .flag(" -jvm-target" , info.toolchainInfo.jvm.jvmTarget)
8994 .flag(" -module-name" , info.moduleName)
9095}
@@ -293,7 +298,15 @@ private fun JvmCompilationTask.runKspPlugin(
293298 compiler : KotlinToolchain .KotlincInvoker ,
294299): JvmCompilationTask {
295300 return context.execute(" Ksp (${inputs.processorsList.joinToString(" , " )} )" ) {
296- baseArgs()
301+ val overrides =
302+ mutableMapOf (
303+ API_VERSION_ARG to kspKotlinToolchainVersion(info.toolchainInfo.common.apiVersion),
304+ LANGUAGE_VERSION_ARG to
305+ kspKotlinToolchainVersion(
306+ info.toolchainInfo.common.languageVersion,
307+ ),
308+ )
309+ baseArgs(overrides)
297310 .plus(kspArgs(plugins))
298311 .flag(" -d" , directories.generatedClasses)
299312 .values(inputs.kotlinSourcesList)
@@ -316,6 +329,11 @@ private fun JvmCompilationTask.runKspPlugin(
316329 }
317330}
318331
332+ private fun kspKotlinToolchainVersion (version : String ): String {
333+ // KSP doesn't support Kotlin 2.0 yet, so we need to use 1.9
334+ return if (version.toFloat() >= 2.0 ) " 1.9" else version
335+ }
336+
319337/* *
320338 * Produce the primary output jar.
321339 */
0 commit comments