From e7989eecf5c8aebca7dbbf07efa0dc621fab31f1 Mon Sep 17 00:00:00 2001 From: Bogdan Mukvich Date: Tue, 25 Apr 2023 11:45:05 +0200 Subject: [PATCH] Add function to get toolchain JDK home location --- buildSrc/src/main/kotlin/JvmToolchain.kt | 7 +++++++ buildSrc/src/main/kotlin/tasks.kt | 4 ++-- .../build.gradle.kts | 12 ++++++------ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/buildSrc/src/main/kotlin/JvmToolchain.kt b/buildSrc/src/main/kotlin/JvmToolchain.kt index bb01094824d..7a2be70f8e9 100644 --- a/buildSrc/src/main/kotlin/JvmToolchain.kt +++ b/buildSrc/src/main/kotlin/JvmToolchain.kt @@ -1,4 +1,5 @@ @file:JvmName("JvmToolchain") + import org.gradle.api.Project import org.gradle.api.plugins.JavaPluginExtension import org.gradle.api.provider.Provider @@ -195,6 +196,12 @@ fun Project.getToolchainLauncherFor( } } +fun Project.getToolchainJdkHomeFor(jdkVersion: JdkMajorVersion): Provider { + return getToolchainLauncherFor(jdkVersion).map { + it.metadata.installationPath.asFile.absolutePath + } +} + fun Project.getJdkVersionWithOverride(jdkVersion: JdkMajorVersion): JdkMajorVersion { return if (project.shouldOverrideObsoleteJdk(jdkVersion)) { diff --git a/buildSrc/src/main/kotlin/tasks.kt b/buildSrc/src/main/kotlin/tasks.kt index 08e10c87943..9baa918901d 100644 --- a/buildSrc/src/main/kotlin/tasks.kt +++ b/buildSrc/src/main/kotlin/tasks.kt @@ -258,8 +258,8 @@ fun Project.projectTest( } defineJDKEnvVariables.forEach { version -> - val javaLauncher = project.getToolchainLauncherFor(version).orNull ?: error("Can't find toolchain for $version") - environment(version.envName, javaLauncher.metadata.installationPath.asFile.absolutePath) + val jdkHome = project.getToolchainJdkHomeFor(version).orNull ?: error("Can't find toolchain for $version") + environment(version.envName, jdkHome) } }.apply { configure(body) } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts index 9ee2058e25e..85d2f381b4d 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts @@ -347,12 +347,12 @@ tasks.withType { systemProperty("installCocoapods", installCocoapods) } - val jdk8Provider = project.getToolchainLauncherFor(JdkMajorVersion.JDK_1_8).map { it.metadata.installationPath.asFile.absolutePath } - val jdk9Provider = project.getToolchainLauncherFor(JdkMajorVersion.JDK_9_0).map { it.metadata.installationPath.asFile.absolutePath } - val jdk10Provider = project.getToolchainLauncherFor(JdkMajorVersion.JDK_10_0).map { it.metadata.installationPath.asFile.absolutePath } - val jdk11Provider = project.getToolchainLauncherFor(JdkMajorVersion.JDK_11_0).map { it.metadata.installationPath.asFile.absolutePath } - val jdk16Provider = project.getToolchainLauncherFor(JdkMajorVersion.JDK_16_0).map { it.metadata.installationPath.asFile.absolutePath } - val jdk17Provider = project.getToolchainLauncherFor(JdkMajorVersion.JDK_17_0).map { it.metadata.installationPath.asFile.absolutePath } + val jdk8Provider = project.getToolchainJdkHomeFor(JdkMajorVersion.JDK_1_8) + val jdk9Provider = project.getToolchainJdkHomeFor(JdkMajorVersion.JDK_9_0) + val jdk10Provider = project.getToolchainJdkHomeFor(JdkMajorVersion.JDK_10_0) + val jdk11Provider = project.getToolchainJdkHomeFor(JdkMajorVersion.JDK_11_0) + val jdk16Provider = project.getToolchainJdkHomeFor(JdkMajorVersion.JDK_16_0) + val jdk17Provider = project.getToolchainJdkHomeFor(JdkMajorVersion.JDK_17_0) val mavenLocalRepo = project.providers.systemProperty("maven.repo.local").forUseAtConfigurationTime().orNull // Query required JDKs paths only on execution phase to avoid triggering auto-download on project configuration phase