Do not use java.home system property to locate JDK dependencies

It may point either to JDK/bin or to JRE/bin. Instead use JDK_16 and JDK_18 paths.
This commit is contained in:
Ilya Gorbunov
2018-03-10 16:38:52 +03:00
parent 6955cabbba
commit 2891a6c954
3 changed files with 10 additions and 7 deletions
+7 -4
View File
@@ -93,12 +93,15 @@ private fun String.toMaybeVersionedJarRegex(): Regex {
} }
private val jreHome = System.getProperty("java.home")
fun firstFromJavaHomeThatExists(vararg paths: String): File? = fun Project.firstFromJavaHomeThatExists(vararg paths: String, jdkHome: File = File(this.property("JDK_18") as String)): File? =
paths.mapNotNull { File(jreHome, it).takeIf { it.exists() } }.firstOrNull() paths.map { File(jdkHome, it) }.firstOrNull { it.exists() }.also {
if (it == null)
logger.warn("Cannot find file by paths: ${paths.toList()} in $jdkHome")
}
fun toolsJar(): File? = firstFromJavaHomeThatExists("../lib/tools.jar", "../Classes/tools.jar") fun Project.toolsJar(jdkHome: File = File(this.property("JDK_18") as String)): File? =
firstFromJavaHomeThatExists("lib/tools.jar", jdkHome = jdkHome)
object EmbeddedComponents { object EmbeddedComponents {
val CONFIGURATION_NAME = "embeddedComponents" val CONFIGURATION_NAME = "embeddedComponents"
+1 -1
View File
@@ -41,7 +41,7 @@ dependencies {
compile(project(":kotlin-stdlib")) compile(project(":kotlin-stdlib"))
proguardDeps(project(":kotlin-stdlib")) proguardDeps(project(":kotlin-stdlib"))
proguardDeps(files(firstFromJavaHomeThatExists("lib/rt.jar", "../Classes/classes.jar"))) proguardDeps(files(firstFromJavaHomeThatExists("jre/lib/rt.jar", "../Classes/classes.jar", jdkHome = File(property("JDK_16") as String))))
shadows(project(":kotlin-reflect-api")) shadows(project(":kotlin-reflect-api"))
shadows(project(":core:descriptors")) shadows(project(":core:descriptors"))
+2 -2
View File
@@ -57,8 +57,8 @@ dependencies {
fatJarContents(commonDep("io.javaslang", "javaslang")) fatJarContents(commonDep("io.javaslang", "javaslang"))
fatJarContents(commonDep("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) { isTransitive = false } fatJarContents(commonDep("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) { isTransitive = false }
proguardLibraryJars(files(firstFromJavaHomeThatExists("lib/rt.jar", "../Classes/classes.jar"), proguardLibraryJars(files(firstFromJavaHomeThatExists("jre/lib/rt.jar", "../Classes/classes.jar"),
firstFromJavaHomeThatExists("lib/jsse.jar", "../Classes/jsse.jar"), firstFromJavaHomeThatExists("jre/lib/jsse.jar", "../Classes/jsse.jar"),
toolsJar())) toolsJar()))
proguardLibraryJars(projectDist(":kotlin-stdlib")) proguardLibraryJars(projectDist(":kotlin-stdlib"))
proguardLibraryJars(projectDist(":kotlin-script-runtime")) proguardLibraryJars(projectDist(":kotlin-script-runtime"))