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? =
paths.mapNotNull { File(jreHome, it).takeIf { it.exists() } }.firstOrNull()
fun Project.firstFromJavaHomeThatExists(vararg paths: String, jdkHome: File = File(this.property("JDK_18") as String)): File? =
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 {
val CONFIGURATION_NAME = "embeddedComponents"
+1 -1
View File
@@ -41,7 +41,7 @@ dependencies {
compile(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(":core:descriptors"))
+2 -2
View File
@@ -57,8 +57,8 @@ dependencies {
fatJarContents(commonDep("io.javaslang", "javaslang"))
fatJarContents(commonDep("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) { isTransitive = false }
proguardLibraryJars(files(firstFromJavaHomeThatExists("lib/rt.jar", "../Classes/classes.jar"),
firstFromJavaHomeThatExists("lib/jsse.jar", "../Classes/jsse.jar"),
proguardLibraryJars(files(firstFromJavaHomeThatExists("jre/lib/rt.jar", "../Classes/classes.jar"),
firstFromJavaHomeThatExists("jre/lib/jsse.jar", "../Classes/jsse.jar"),
toolsJar()))
proguardLibraryJars(projectDist(":kotlin-stdlib"))
proguardLibraryJars(projectDist(":kotlin-script-runtime"))