[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) (it.kotlinJavaToolchain.toolchain as DefaultKotlinJavaToolchain.DefaultJavaToolchainSetter)
.useAsConvention(javaLauncher) .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.dsl.KotlinJvmCompilerOptionsDefault
import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.copyAttributes 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.*
import org.jetbrains.kotlin.gradle.utils.dashSeparatedName import org.jetbrains.kotlin.gradle.utils.dashSeparatedName
import org.jetbrains.kotlin.gradle.utils.forAllAndroidVariants import org.jetbrains.kotlin.gradle.utils.forAllAndroidVariants
@@ -335,6 +336,9 @@ abstract class KotlinAndroidTarget @Inject constructor(
@ExperimentalKotlinGradlePluginApi @ExperimentalKotlinGradlePluginApi
override val compilerOptions: KotlinJvmCompilerOptions = project.objects override val compilerOptions: KotlinJvmCompilerOptions = project.objects
.newInstance<KotlinJvmCompilerOptionsDefault>() .newInstance<KotlinJvmCompilerOptionsDefault>()
.apply {
DefaultKotlinJavaToolchain.wireJvmTargetToToolchain(this, project)
}
@ExperimentalKotlinGradlePluginApi @ExperimentalKotlinGradlePluginApi
fun compilerOptions(configure: KotlinJvmCompilerOptions.() -> Unit) { 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.KotlinJvmRunDsl
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmRunDslImpl import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmRunDslImpl
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.registerMainRunTask 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.tasks.withType
import org.jetbrains.kotlin.gradle.utils.* import org.jetbrains.kotlin.gradle.utils.*
import org.jetbrains.kotlin.gradle.utils.Future import org.jetbrains.kotlin.gradle.utils.Future
@@ -338,6 +339,12 @@ abstract class KotlinJvmTarget @Inject constructor(
@ExperimentalKotlinGradlePluginApi @ExperimentalKotlinGradlePluginApi
override val compilerOptions: KotlinJvmCompilerOptions = project.objects override val compilerOptions: KotlinJvmCompilerOptions = project.objects
.newInstance<KotlinJvmCompilerOptionsDefault>() .newInstance<KotlinJvmCompilerOptionsDefault>()
.apply {
DefaultKotlinJavaToolchain.wireJvmTargetToToolchain(
this,
project
)
}
@ExperimentalKotlinGradlePluginApi @ExperimentalKotlinGradlePluginApi
fun compilerOptions(configure: KotlinJvmCompilerOptions.() -> Unit) { fun compilerOptions(configure: KotlinJvmCompilerOptions.() -> Unit) {