[Gradle] KotlinJvmRun: Configure jvm toolchain
^KT-59055 Verification Pending
This commit is contained in:
committed by
Space Team
parent
38ae16e9d3
commit
75ab2ce4e7
+8
@@ -1,10 +1,12 @@
|
||||
package org.jetbrains.kotlin.gradle.targets.jvm.tasks
|
||||
|
||||
import org.gradle.api.file.FileCollection
|
||||
import org.gradle.api.plugins.JavaPluginExtension
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.tasks.JavaExec
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.jvm.toolchain.JavaToolchainService
|
||||
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
||||
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||
@@ -17,6 +19,7 @@ import org.jetbrains.kotlin.gradle.plugin.internal.usedAtConfigurationTime
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.internal
|
||||
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
|
||||
import org.jetbrains.kotlin.gradle.utils.getByType
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
import org.jetbrains.kotlin.gradle.utils.property
|
||||
import org.jetbrains.kotlin.tooling.core.UnsafeApi
|
||||
@@ -118,6 +121,11 @@ private fun KotlinJvmTarget.registerKotlinJvmRun(taskName: String, compilation:
|
||||
.orElse(project.providers.systemProperty("mainClass").usedAtConfigurationTime())
|
||||
.orElse(mainClass).usedAtConfigurationTime()
|
||||
)
|
||||
|
||||
project.extensions.findByType(JavaToolchainService::class.java)?.let { toolchainService ->
|
||||
val toolchain = project.extensions.getByType(JavaPluginExtension::class.java).toolchain
|
||||
task.javaLauncher.convention(toolchainService.launcherFor(toolchain))
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(UnsafeApi::class)
|
||||
|
||||
+22
@@ -7,12 +7,15 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.unitTests
|
||||
|
||||
import org.gradle.api.JavaVersion
|
||||
import org.gradle.api.tasks.JavaExec
|
||||
import org.jetbrains.kotlin.gradle.dependencyResolutionTests.mavenCentralCacheRedirector
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.configurationResult
|
||||
import org.jetbrains.kotlin.gradle.plugin.launch
|
||||
import org.jetbrains.kotlin.gradle.util.*
|
||||
import org.jetbrains.kotlin.konan.target.HostManager
|
||||
import org.junit.Assume
|
||||
import kotlin.test.*
|
||||
|
||||
class KotlinJvmRunTest {
|
||||
@@ -161,5 +164,24 @@ class KotlinJvmRunTest {
|
||||
checkDiagnostics("jvmRunTask-conflict")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `test - jvmRun task is using kotlin configured toolchain - jvm 11`() = buildProjectWithMPP().runLifecycleAwareTest {
|
||||
Assume.assumeFalse("https://github.com/gradle/native-platform/issues/274", HostManager.hostIsMingw)
|
||||
val kotlin = multiplatformExtension
|
||||
kotlin.jvmToolchain(11)
|
||||
kotlin.jvm()
|
||||
configurationResult.await()
|
||||
assertEquals(JavaVersion.VERSION_11, assertNotNull(kotlin.jvm().mainRun.await()).task.get().javaVersion)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `test - jvmRun task is using kotlin configured toolchain - jvm 17`() = buildProjectWithMPP().runLifecycleAwareTest {
|
||||
Assume.assumeFalse("https://github.com/gradle/native-platform/issues/274", HostManager.hostIsMingw)
|
||||
val kotlin = multiplatformExtension
|
||||
kotlin.jvmToolchain(17)
|
||||
kotlin.jvm()
|
||||
configurationResult.await()
|
||||
assertEquals(JavaVersion.VERSION_17, assertNotNull(kotlin.jvm().mainRun.await()).task.get().javaVersion)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user