From f27f91b03a32e45818c1594cd750a6b091ca62da Mon Sep 17 00:00:00 2001 From: Alexander Likhachev Date: Wed, 25 Aug 2021 19:54:27 +0300 Subject: [PATCH] [Build] Make JVM target settings logic less imperative Previously actual value was dependent on the order of calls to `updateJvmTarget` and `configureJava9Compilation` in build script that may lead to inconsistencies --- buildSrc/src/main/kotlin/JvmToolchain.kt | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/buildSrc/src/main/kotlin/JvmToolchain.kt b/buildSrc/src/main/kotlin/JvmToolchain.kt index c7f9b5bb237..02b05e8d04e 100644 --- a/buildSrc/src/main/kotlin/JvmToolchain.kt +++ b/buildSrc/src/main/kotlin/JvmToolchain.kt @@ -143,14 +143,21 @@ fun JavaCompile.configureTaskToolchain( fun Project.updateJvmTarget( jvmTarget: String ) { - tasks.withType().configureEach { - kotlinOptions.jvmTarget = jvmTarget - } + // Java 9 tasks are exceptions that are configured in configureJava9Compilation + tasks + .withType() + .matching { it.name != "compileJava9Kotlin" } + .configureEach { + kotlinOptions.jvmTarget = jvmTarget + } - tasks.withType().configureEach { - sourceCompatibility = jvmTarget - targetCompatibility = jvmTarget - } + tasks + .withType() + .matching { it.name != "compileJava9Java" } + .configureEach { + sourceCompatibility = jvmTarget + targetCompatibility = jvmTarget + } } private fun Project.getToolchainCompilerFor(