Switch -jvm-target default to null
This commit is contained in:
+1
-1
@@ -36,7 +36,7 @@ open class DefaultValues(val defaultValue: String, val possibleValues: List<Stri
|
||||
)
|
||||
|
||||
object JvmTargetVersions : DefaultValues(
|
||||
"\"" + JvmTarget.DEFAULT.description + "\"",
|
||||
"null",
|
||||
JvmTarget.values().map { "\"${it.description}\"" }
|
||||
)
|
||||
|
||||
|
||||
+1
-1
@@ -89,7 +89,7 @@ class K2JVMCompilerArguments : CommonCompilerArguments() {
|
||||
valueDescription = "<version>",
|
||||
description = "Target version of the generated JVM bytecode (1.6 (DEPRECATED), 1.8, 9, 10, 11, 12, 13, 14, 15, 16 or 17), default is 1.8"
|
||||
)
|
||||
var jvmTarget: String? by NullableStringFreezableVar(JvmTarget.DEFAULT.description)
|
||||
var jvmTarget: String? by NullableStringFreezableVar(null)
|
||||
|
||||
@GradleOption(DefaultValues.BooleanFalseDefault::class)
|
||||
@Argument(value = "-java-parameters", description = "Generate metadata for Java 1.8 reflection on method parameters")
|
||||
|
||||
@@ -76,6 +76,11 @@ fun CompilerConfiguration.setupJvmSpecificArguments(arguments: K2JVMCompilerArgu
|
||||
}
|
||||
}
|
||||
|
||||
if (get(JVMConfigurationKeys.JVM_TARGET) == null) {
|
||||
put(JVMConfigurationKeys.JVM_TARGET, JvmTarget.JVM_1_8)
|
||||
}
|
||||
|
||||
|
||||
val jvmTarget = get(JVMConfigurationKeys.JVM_TARGET) ?: JvmTarget.DEFAULT
|
||||
if (jvmTarget.majorVersion < JvmTarget.JVM_1_8.majorVersion) {
|
||||
val jvmDefaultMode = languageVersionSettings.getFlag(JvmAnalysisFlags.jvmDefaultMode)
|
||||
|
||||
@@ -33,7 +33,6 @@ class Java11ModulesIntegrationTest : AbstractKotlinCompilerIntegrationTest() {
|
||||
|
||||
val kotlinOptions = mutableListOf(
|
||||
"-jdk-home", KtTestUtil.getJdk11Home().path,
|
||||
"-jvm-target", "1.8",
|
||||
"-Xmodule-path=$paths"
|
||||
)
|
||||
if (addModules.isNotEmpty()) {
|
||||
|
||||
+2
-2
@@ -573,9 +573,9 @@ class KotlinJavaToolchainTest : KGPBaseTest() {
|
||||
tasks.named("compileKotlin") {
|
||||
doLast {
|
||||
def actualJvmTarget = filteredArgumentsMap['jvmTarget']
|
||||
if (actualJvmTarget != "1.8") {
|
||||
if (actualJvmTarget != "null") {
|
||||
//noinspection GroovyAssignabilityCheck
|
||||
throw new GradleException("Expected `jvmTarget` value is '1.8' but the actual value was ${'$'}actualJvmTarget")
|
||||
throw new GradleException("Expected `jvmTarget` value is 'null' but the actual value was ${'$'}actualJvmTarget")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -21,9 +21,9 @@ interface KotlinJvmOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOption
|
||||
/**
|
||||
* Target version of the generated JVM bytecode (1.6 (DEPRECATED), 1.8, 9, 10, 11, 12, 13, 14, 15, 16 or 17), default is 1.8
|
||||
* Possible values: "1.6", "1.8", "9", "10", "11", "12", "13", "14", "15", "16", "17"
|
||||
* Default value: "1.8"
|
||||
* Default value: null
|
||||
*/
|
||||
var jvmTarget: kotlin.String
|
||||
var jvmTarget: kotlin.String?
|
||||
|
||||
/**
|
||||
* Name of the generated .kotlin_module file
|
||||
|
||||
+3
-8
@@ -47,12 +47,7 @@ internal abstract class KotlinJvmOptionsBase : org.jetbrains.kotlin.gradle.dsl.K
|
||||
@Deprecated(message = "This option is not working well with Gradle caching and will be removed in the future.", level = DeprecationLevel.WARNING)
|
||||
override var jdkHome: kotlin.String? = null
|
||||
|
||||
internal var jvmTargetField: kotlin.String? = null
|
||||
override var jvmTarget: kotlin.String
|
||||
get() = jvmTargetField ?: "1.8"
|
||||
set(value) {
|
||||
jvmTargetField = value
|
||||
}
|
||||
override var jvmTarget: kotlin.String? = null
|
||||
|
||||
override var moduleName: kotlin.String? = null
|
||||
|
||||
@@ -95,7 +90,7 @@ internal abstract class KotlinJvmOptionsBase : org.jetbrains.kotlin.gradle.dsl.K
|
||||
useFirField?.let { args.useFir = it }
|
||||
javaParametersField?.let { args.javaParameters = it }
|
||||
jdkHome?.let { args.jdkHome = it }
|
||||
jvmTargetField?.let { args.jvmTarget = it }
|
||||
jvmTarget?.let { args.jvmTarget = it }
|
||||
moduleName?.let { args.moduleName = it }
|
||||
noJdkField?.let { args.noJdk = it }
|
||||
noStdlibField?.let { args.noStdlib = it }
|
||||
@@ -113,7 +108,7 @@ internal fun org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments.fi
|
||||
useFir = false
|
||||
javaParameters = false
|
||||
jdkHome = null
|
||||
jvmTarget = "1.8"
|
||||
jvmTarget = null
|
||||
moduleName = null
|
||||
noJdk = false
|
||||
noStdlib = true
|
||||
|
||||
+2
-2
@@ -155,7 +155,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
|
||||
|
||||
// parentKotlinOptionsImpl is set from 'kotlin-android' plugin
|
||||
val appliedJvmTargets = listOfNotNull(task.kotlinOptions, task.parentKotlinOptionsImpl.orNull)
|
||||
.mapNotNull { (it as KotlinJvmOptionsImpl).jvmTargetField }
|
||||
.mapNotNull { (it as KotlinJvmOptionsImpl).jvmTarget }
|
||||
|
||||
if (appliedJvmTargets.isEmpty()) {
|
||||
// For Java 9 and Java 10 JavaVersion returns "1.9" or "1.10" accordingly
|
||||
@@ -180,7 +180,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
|
||||
kotlinCompileTaskProvider()?.let { task ->
|
||||
// parentKotlinOptionsImpl is set from 'kotlin-android' plugin
|
||||
val appliedJvmTargets = listOfNotNull(task.kotlinOptions, task.parentKotlinOptionsImpl.orNull)
|
||||
.mapNotNull { (it as KotlinJvmOptionsImpl).jvmTargetField }
|
||||
.mapNotNull { (it as KotlinJvmOptionsImpl).jvmTarget }
|
||||
|
||||
if (appliedJvmTargets.isEmpty()) {
|
||||
// For Java 9 and Java 10 JavaVersion returns "1.9" or "1.10" accordingly
|
||||
|
||||
+4
-2
@@ -35,6 +35,7 @@ import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||
import org.jetbrains.kotlin.compilerRunner.*
|
||||
import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.Companion.normalizeForFlagFile
|
||||
import org.jetbrains.kotlin.config.JvmTarget
|
||||
import org.jetbrains.kotlin.daemon.common.MultiModuleICSettings
|
||||
import org.jetbrains.kotlin.gradle.dsl.*
|
||||
import org.jetbrains.kotlin.gradle.incremental.*
|
||||
@@ -797,10 +798,11 @@ abstract class KotlinCompile @Inject constructor(
|
||||
else -> targetCompatibility
|
||||
}
|
||||
|
||||
if (normalizedJavaTarget != args.jvmTarget) {
|
||||
val jvmTarget = args.jvmTarget ?: JvmTarget.DEFAULT.toString()
|
||||
if (normalizedJavaTarget != jvmTarget) {
|
||||
val javaTaskName = associatedJavaCompileTaskName.get()
|
||||
val errorMessage = "'$javaTaskName' task (current target is $targetCompatibility) and " +
|
||||
"'$name' task (current target is ${args.jvmTarget}) " +
|
||||
"'$name' task (current target is $jvmTarget) " +
|
||||
"jvm target compatibility should be set to the same Java version."
|
||||
when (jvmTargetValidationMode.get()) {
|
||||
PropertiesProvider.JvmTargetValidationMode.ERROR -> throw GradleException(errorMessage)
|
||||
|
||||
Reference in New Issue
Block a user