diff --git a/buildSrc/src/main/kotlin/JvmToolchain.kt b/buildSrc/src/main/kotlin/JvmToolchain.kt index ee0cddf9e3d..72d6043e1d6 100644 --- a/buildSrc/src/main/kotlin/JvmToolchain.kt +++ b/buildSrc/src/main/kotlin/JvmToolchain.kt @@ -43,6 +43,8 @@ fun Project.shouldOverrideObsoleteJdk( fun Project.configureJvmToolchain( jdkVersion: JdkMajorVersion ) { + @Suppress("NAME_SHADOWING") + val jdkVersion = chooseJdk18ForJpsBuild(jdkVersion) // Ensure java only modules also set default toolchain configureJavaOnlyToolchain(jdkVersion) @@ -78,6 +80,8 @@ fun Project.configureJvmToolchain( fun Project.configureJavaOnlyToolchain( jdkVersion: JdkMajorVersion ) { + @Suppress("NAME_SHADOWING") + val jdkVersion = chooseJdk18ForJpsBuild(jdkVersion) plugins.withId("java-base") { val javaExtension = extensions.getByType() if (shouldOverrideObsoleteJdk(jdkVersion)) { @@ -100,6 +104,14 @@ fun Project.configureJavaOnlyToolchain( } } +fun Project.chooseJdk18ForJpsBuild(jdkVersion: JdkMajorVersion): JdkMajorVersion { + return if (kotlinBuildProperties.isInJpsBuildIdeaSync) { + maxOf(jdkVersion, JdkMajorVersion.JDK_1_8) + } else { + jdkVersion + } +} + fun KotlinCompile.configureTaskToolchain( jdkVersion: JdkMajorVersion ) { @@ -142,6 +154,12 @@ fun JavaCompile.configureTaskToolchain( fun Project.updateJvmTarget( jvmTarget: String ) { + @Suppress("NAME_SHADOWING") + val jvmTarget = if (kotlinBuildProperties.isInJpsBuildIdeaSync && jvmTarget == "1.6") { + "1.8" + } else { + jvmTarget + } // Java 9 tasks are exceptions that are configured in configureJava9Compilation tasks .withType() diff --git a/core/descriptors.runtime/build.gradle.kts b/core/descriptors.runtime/build.gradle.kts index e9cf34ab4bd..4980d0d370f 100644 --- a/core/descriptors.runtime/build.gradle.kts +++ b/core/descriptors.runtime/build.gradle.kts @@ -8,13 +8,13 @@ plugins { tasks .matching { it.name == "compileKotlin" && it is KotlinCompile } .configureEach { - (this as KotlinCompile).configureTaskToolchain(JdkMajorVersion.JDK_1_6) + (this as KotlinCompile).configureTaskToolchain(chooseJdk18ForJpsBuild(JdkMajorVersion.JDK_1_6)) } tasks .matching { it.name == "compileJava" && it is JavaCompile } .configureEach { - (this as JavaCompile).configureTaskToolchain(JdkMajorVersion.JDK_1_6) + (this as JavaCompile).configureTaskToolchain(chooseJdk18ForJpsBuild(JdkMajorVersion.JDK_1_6)) } dependencies { diff --git a/libraries/reflect/build.gradle.kts b/libraries/reflect/build.gradle.kts index 49f722a7bc8..b2d5bfffbb5 100644 --- a/libraries/reflect/build.gradle.kts +++ b/libraries/reflect/build.gradle.kts @@ -146,7 +146,7 @@ val proguard by task { injars(mapOf("filter" to "!META-INF/**,!**/*.kotlin_builtins"), proguardAdditionalInJars) outjars(fileFrom(base.libsDirectory.asFile.get(), "${base.archivesName.get()}-$version-proguard.jar")) - javaLauncher.set(project.getToolchainLauncherFor(JdkMajorVersion.JDK_1_6)) + javaLauncher.set(project.getToolchainLauncherFor(chooseJdk18ForJpsBuild(JdkMajorVersion.JDK_1_6))) libraryjars(mapOf("filter" to "!META-INF/versions/**"), proguardDeps) libraryjars( project.files(