[Gradle] Update how JVM toolchain is wired in MPP projects

^KT-57292 In Progress
This commit is contained in:
Yahor Berdnikau
2023-08-03 22:51:52 +02:00
committed by Space Team
parent bc871c6cfa
commit 07593da3f0
3 changed files with 11 additions and 15 deletions
@@ -71,21 +71,6 @@ internal abstract class DefaultToolchainSupport @Inject constructor(
(it.kotlinJavaToolchain.toolchain as DefaultKotlinJavaToolchain.DefaultJavaToolchainSetter)
.useAsConvention(javaLauncher)
}
if (kotlinExtension !is KotlinJvmProjectExtension &&
kotlinExtension !is KotlinAndroidProjectExtension
) {
tasks
.withType<UsesKotlinJavaToolchain>()
.configureEach { task ->
if (task is KotlinJvmCompile) {
DefaultKotlinJavaToolchain.wireJvmTargetToJvm(
task.compilerOptions,
(task.kotlinJavaToolchain as DefaultKotlinJavaToolchain).providedJvm
)
}
}
}
}
}
}
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptionsDefault
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.copyAttributes
import org.jetbrains.kotlin.gradle.tasks.DefaultKotlinJavaToolchain
import org.jetbrains.kotlin.gradle.utils.*
import org.jetbrains.kotlin.gradle.utils.dashSeparatedName
import org.jetbrains.kotlin.gradle.utils.forAllAndroidVariants
@@ -335,6 +336,9 @@ abstract class KotlinAndroidTarget @Inject constructor(
@ExperimentalKotlinGradlePluginApi
override val compilerOptions: KotlinJvmCompilerOptions = project.objects
.newInstance<KotlinJvmCompilerOptionsDefault>()
.apply {
DefaultKotlinJavaToolchain.wireJvmTargetToToolchain(this, project)
}
@ExperimentalKotlinGradlePluginApi
fun compilerOptions(configure: KotlinJvmCompilerOptions.() -> Unit) {
@@ -36,6 +36,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.copyAttributes
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmRunDsl
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmRunDslImpl
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.registerMainRunTask
import org.jetbrains.kotlin.gradle.tasks.DefaultKotlinJavaToolchain
import org.jetbrains.kotlin.gradle.tasks.withType
import org.jetbrains.kotlin.gradle.utils.*
import org.jetbrains.kotlin.gradle.utils.Future
@@ -338,6 +339,12 @@ abstract class KotlinJvmTarget @Inject constructor(
@ExperimentalKotlinGradlePluginApi
override val compilerOptions: KotlinJvmCompilerOptions = project.objects
.newInstance<KotlinJvmCompilerOptionsDefault>()
.apply {
DefaultKotlinJavaToolchain.wireJvmTargetToToolchain(
this,
project
)
}
@ExperimentalKotlinGradlePluginApi
fun compilerOptions(configure: KotlinJvmCompilerOptions.() -> Unit) {