diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index a9bae0750..c298e838c 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -6,3 +6,10 @@ dependencies { implementation(buildLibs.build.kotlin) implementation(buildLibs.build.kotlinx.atomicfu) } + +kotlin { + jvmToolchain { + this as JavaToolchainSpec + languageVersion.set(JavaLanguageVersion.of(8)) + } +} diff --git a/buildSrc/src/main/kotlin/targetsJvm.kt b/buildSrc/src/main/kotlin/targetsJvm.kt index cb7058f5d..8f226e153 100644 --- a/buildSrc/src/main/kotlin/targetsJvm.kt +++ b/buildSrc/src/main/kotlin/targetsJvm.kt @@ -1,7 +1,19 @@ +import org.gradle.jvm.toolchain.* +import org.gradle.kotlin.dsl.* import org.jetbrains.kotlin.gradle.dsl.* fun KotlinMultiplatformExtension.configureJvm(block: TargetBuilder.() -> Unit = {}) { + jvmToolchain { (this as JavaToolchainSpec).setJdk(8) } jvm { + listOf(11, 17).forEach { jdkVersion -> + testRuns.create("${jdkVersion}Test") { + executionTask.configure { + javaLauncher.set( + project.extensions.getByType().launcherFor { setJdk(11) } + ) + } + } + } testRuns.all { executionTask.configure { // ActiveProcessorCount is used here, to make sure local setup is similar as on CI @@ -12,3 +24,7 @@ fun KotlinMultiplatformExtension.configureJvm(block: TargetBuilder.() -> Unit = } TargetBuilder(sourceSets, "jvm").block() } + +private fun JavaToolchainSpec.setJdk(version: Int) { + languageVersion.set(JavaLanguageVersion.of(version)) +} \ No newline at end of file