From e3b219b68f1b051721ae036fbceeae0efc25ef40 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Mon, 19 Jul 2021 15:33:05 +0200 Subject: [PATCH] Don't produce warning when '-no-jdk' option is present. Toolchain in such case should avoid setting '-jdk-home' option. ^KT-46626 In Progress --- .../kotlin/gradle/KotlinJavaToolchainTest.kt | 32 +++++++++++++++++++ .../GradleKotlinCompilerRunner.kt | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt index abd1bb51d57..8d70e6c449d 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt @@ -621,6 +621,38 @@ class KotlinJavaToolchainTest : KGPBaseTest() { } } + @DisplayName("Build should not produce warninings when '-no-jdk' option is present") + @GradleTestVersions(minVersion = "6.7.1") + @GradleTest + internal fun noWarningOnNoJdkOptionPresent(gradleVersion: GradleVersion) { + project( + projectName = "simple".fullProjectName, + gradleVersion = gradleVersion + ) { + useToolchainToCompile(11) + + //language=groovy + rootBuildGradle.append( + """ + + import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + + tasks + .withType(KotlinCompile.class) + .configureEach { + kotlinOptions { + noJdk = true + } + } + """.trimIndent() + ) + + build("build") { + assertOutputDoesNotContain("w: The '-jdk-home' option is ignored because '-no-jdk' is specified") + } + } + } + private fun BuildResult.assertJdkHomeIsUsingJdk( javaexecPath: String ) = assertOutputContains("[KOTLIN] Kotlin compilation 'jdkHome' argument: $javaexecPath") diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt index 2791a1eb490..4841f766a66 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt @@ -91,7 +91,7 @@ internal open class GradleCompilerRunner( args.commonSources = commonSources.map { it.absolutePath }.toTypedArray() args.javaSourceRoots = javaSourceRoots.map { it.absolutePath }.toTypedArray() args.javaPackagePrefix = javaPackagePrefix - if (args.jdkHome == null) args.jdkHome = jdkHome.absolutePath + if (args.jdkHome == null && !args.noJdk) args.jdkHome = jdkHome.absolutePath loggerProvider.kotlinInfo("Kotlin compilation 'jdkHome' argument: ${args.jdkHome}") return runCompilerAsync(KotlinCompilerClass.JVM, args, environment) }