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:
@@ -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"
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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"))
|
||||
|
||||
Reference in New Issue
Block a user