From aac68af7dbad25b29531b8544c100c497146c250 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 10 May 2022 11:11:27 +0200 Subject: Add support for kotlin-compiler-embeddable 1.6.20 While, unlike last time, maintaining backwards compatibility with 1.5.21 (and anything in between). --- build.gradle.kts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'build.gradle.kts') diff --git a/build.gradle.kts b/build.gradle.kts index c3bba96..b6214a3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -20,6 +20,9 @@ repositories { val testA by sourceSets.creating val testB by sourceSets.creating +kotlinVersion("1.5.21", isPrimaryVersion = true) +kotlinVersion("1.6.20") + dependencies { api("org.jetbrains.kotlin:kotlin-compiler-embeddable:1.5.21") implementation(kotlin("stdlib")) @@ -49,3 +52,32 @@ publishing { tasks.test { useJUnitPlatform() } + +fun kotlinVersion(version: String, isPrimaryVersion: Boolean = false) { + val name = version.replace(".", "") + + val sourceSet = sourceSets.create("kotlin$name") + + val testClasspath = configurations.create("kotlin${name}TestClasspath") { + extendsFrom(configurations.testRuntimeClasspath.get()) + extendsFrom(configurations[sourceSet.compileOnlyConfigurationName]) + } + + dependencies { + implementation(sourceSet.output) + sourceSet.compileOnlyConfigurationName("org.jetbrains.kotlin:kotlin-compiler-embeddable:$version") + } + + tasks.jar { + from(sourceSet.output) + } + + if (!isPrimaryVersion) { + val testTask = tasks.register("testKotlin$name", Test::class) { + useJUnitPlatform() + testClassesDirs = sourceSets.test.get().output.classesDirs + classpath = testClasspath + sourceSets.test.get().output + sourceSets.main.get().output + } + tasks.check { dependsOn(testTask) } + } +} -- cgit