Properly extract JVM version in kapt

#KT-41788
This commit is contained in:
Mikhael Bogdanov
2020-11-25 19:22:20 +01:00
parent 9ed5b8f870
commit b2b8562f92
@@ -23,17 +23,11 @@ import com.sun.tools.javac.util.Options
import com.sun.tools.javac.util.List as JavacList import com.sun.tools.javac.util.List as JavacList
import org.jetbrains.kotlin.kapt3.base.plus import org.jetbrains.kotlin.kapt3.base.plus
fun isJava9OrLater(): Boolean = !System.getProperty("java.version").startsWith("1.") private fun getJavaVersion(): Int =
fun isJava11OrLater(): Boolean { System.getProperty("java.specification.version")?.substringAfter('.')?.toIntOrNull() ?: 6
val majorVersion = System.getProperty("java.version").substringBefore(".")
if (majorVersion.isEmpty()) return false
return try { fun isJava9OrLater() = getJavaVersion() >= 9
majorVersion.toInt() >= 11 fun isJava11OrLater() = getJavaVersion() >= 11
} catch (ignored: Throwable) {
false
}
}
fun Options.putJavacOption(jdk8Name: String, jdk9Name: String, value: String) { fun Options.putJavacOption(jdk8Name: String, jdk9Name: String, value: String) {
val option = if (isJava9OrLater()) { val option = if (isJava9OrLater()) {