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(
|
object JvmTargetVersions : DefaultValues(
|
||||||
"\"" + JvmTarget.DEFAULT.description + "\"",
|
"null",
|
||||||
JvmTarget.values().map { "\"${it.description}\"" }
|
JvmTarget.values().map { "\"${it.description}\"" }
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -89,7 +89,7 @@ class K2JVMCompilerArguments : CommonCompilerArguments() {
|
|||||||
valueDescription = "<version>",
|
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"
|
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)
|
@GradleOption(DefaultValues.BooleanFalseDefault::class)
|
||||||
@Argument(value = "-java-parameters", description = "Generate metadata for Java 1.8 reflection on method parameters")
|
@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
|
val jvmTarget = get(JVMConfigurationKeys.JVM_TARGET) ?: JvmTarget.DEFAULT
|
||||||
if (jvmTarget.majorVersion < JvmTarget.JVM_1_8.majorVersion) {
|
if (jvmTarget.majorVersion < JvmTarget.JVM_1_8.majorVersion) {
|
||||||
val jvmDefaultMode = languageVersionSettings.getFlag(JvmAnalysisFlags.jvmDefaultMode)
|
val jvmDefaultMode = languageVersionSettings.getFlag(JvmAnalysisFlags.jvmDefaultMode)
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ class Java11ModulesIntegrationTest : AbstractKotlinCompilerIntegrationTest() {
|
|||||||
|
|
||||||
val kotlinOptions = mutableListOf(
|
val kotlinOptions = mutableListOf(
|
||||||
"-jdk-home", KtTestUtil.getJdk11Home().path,
|
"-jdk-home", KtTestUtil.getJdk11Home().path,
|
||||||
"-jvm-target", "1.8",
|
|
||||||
"-Xmodule-path=$paths"
|
"-Xmodule-path=$paths"
|
||||||
)
|
)
|
||||||
if (addModules.isNotEmpty()) {
|
if (addModules.isNotEmpty()) {
|
||||||
|
|||||||
+2
-2
@@ -573,9 +573,9 @@ class KotlinJavaToolchainTest : KGPBaseTest() {
|
|||||||
tasks.named("compileKotlin") {
|
tasks.named("compileKotlin") {
|
||||||
doLast {
|
doLast {
|
||||||
def actualJvmTarget = filteredArgumentsMap['jvmTarget']
|
def actualJvmTarget = filteredArgumentsMap['jvmTarget']
|
||||||
if (actualJvmTarget != "1.8") {
|
if (actualJvmTarget != "null") {
|
||||||
//noinspection GroovyAssignabilityCheck
|
//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
|
* 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"
|
* 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
|
* 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)
|
@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
|
override var jdkHome: kotlin.String? = null
|
||||||
|
|
||||||
internal var jvmTargetField: kotlin.String? = null
|
override var jvmTarget: kotlin.String? = null
|
||||||
override var jvmTarget: kotlin.String
|
|
||||||
get() = jvmTargetField ?: "1.8"
|
|
||||||
set(value) {
|
|
||||||
jvmTargetField = value
|
|
||||||
}
|
|
||||||
|
|
||||||
override var moduleName: 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 }
|
useFirField?.let { args.useFir = it }
|
||||||
javaParametersField?.let { args.javaParameters = it }
|
javaParametersField?.let { args.javaParameters = it }
|
||||||
jdkHome?.let { args.jdkHome = it }
|
jdkHome?.let { args.jdkHome = it }
|
||||||
jvmTargetField?.let { args.jvmTarget = it }
|
jvmTarget?.let { args.jvmTarget = it }
|
||||||
moduleName?.let { args.moduleName = it }
|
moduleName?.let { args.moduleName = it }
|
||||||
noJdkField?.let { args.noJdk = it }
|
noJdkField?.let { args.noJdk = it }
|
||||||
noStdlibField?.let { args.noStdlib = it }
|
noStdlibField?.let { args.noStdlib = it }
|
||||||
@@ -113,7 +108,7 @@ internal fun org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments.fi
|
|||||||
useFir = false
|
useFir = false
|
||||||
javaParameters = false
|
javaParameters = false
|
||||||
jdkHome = null
|
jdkHome = null
|
||||||
jvmTarget = "1.8"
|
jvmTarget = null
|
||||||
moduleName = null
|
moduleName = null
|
||||||
noJdk = false
|
noJdk = false
|
||||||
noStdlib = true
|
noStdlib = true
|
||||||
|
|||||||
+2
-2
@@ -155,7 +155,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
|
|||||||
|
|
||||||
// parentKotlinOptionsImpl is set from 'kotlin-android' plugin
|
// parentKotlinOptionsImpl is set from 'kotlin-android' plugin
|
||||||
val appliedJvmTargets = listOfNotNull(task.kotlinOptions, task.parentKotlinOptionsImpl.orNull)
|
val appliedJvmTargets = listOfNotNull(task.kotlinOptions, task.parentKotlinOptionsImpl.orNull)
|
||||||
.mapNotNull { (it as KotlinJvmOptionsImpl).jvmTargetField }
|
.mapNotNull { (it as KotlinJvmOptionsImpl).jvmTarget }
|
||||||
|
|
||||||
if (appliedJvmTargets.isEmpty()) {
|
if (appliedJvmTargets.isEmpty()) {
|
||||||
// For Java 9 and Java 10 JavaVersion returns "1.9" or "1.10" accordingly
|
// 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 ->
|
kotlinCompileTaskProvider()?.let { task ->
|
||||||
// parentKotlinOptionsImpl is set from 'kotlin-android' plugin
|
// parentKotlinOptionsImpl is set from 'kotlin-android' plugin
|
||||||
val appliedJvmTargets = listOfNotNull(task.kotlinOptions, task.parentKotlinOptionsImpl.orNull)
|
val appliedJvmTargets = listOfNotNull(task.kotlinOptions, task.parentKotlinOptionsImpl.orNull)
|
||||||
.mapNotNull { (it as KotlinJvmOptionsImpl).jvmTargetField }
|
.mapNotNull { (it as KotlinJvmOptionsImpl).jvmTarget }
|
||||||
|
|
||||||
if (appliedJvmTargets.isEmpty()) {
|
if (appliedJvmTargets.isEmpty()) {
|
||||||
// For Java 9 and Java 10 JavaVersion returns "1.9" or "1.10" accordingly
|
// 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.cli.common.arguments.K2JVMCompilerArguments
|
||||||
import org.jetbrains.kotlin.compilerRunner.*
|
import org.jetbrains.kotlin.compilerRunner.*
|
||||||
import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.Companion.normalizeForFlagFile
|
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.daemon.common.MultiModuleICSettings
|
||||||
import org.jetbrains.kotlin.gradle.dsl.*
|
import org.jetbrains.kotlin.gradle.dsl.*
|
||||||
import org.jetbrains.kotlin.gradle.incremental.*
|
import org.jetbrains.kotlin.gradle.incremental.*
|
||||||
@@ -797,10 +798,11 @@ abstract class KotlinCompile @Inject constructor(
|
|||||||
else -> targetCompatibility
|
else -> targetCompatibility
|
||||||
}
|
}
|
||||||
|
|
||||||
if (normalizedJavaTarget != args.jvmTarget) {
|
val jvmTarget = args.jvmTarget ?: JvmTarget.DEFAULT.toString()
|
||||||
|
if (normalizedJavaTarget != jvmTarget) {
|
||||||
val javaTaskName = associatedJavaCompileTaskName.get()
|
val javaTaskName = associatedJavaCompileTaskName.get()
|
||||||
val errorMessage = "'$javaTaskName' task (current target is $targetCompatibility) and " +
|
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."
|
"jvm target compatibility should be set to the same Java version."
|
||||||
when (jvmTargetValidationMode.get()) {
|
when (jvmTargetValidationMode.get()) {
|
||||||
PropertiesProvider.JvmTargetValidationMode.ERROR -> throw GradleException(errorMessage)
|
PropertiesProvider.JvmTargetValidationMode.ERROR -> throw GradleException(errorMessage)
|
||||||
|
|||||||
Reference in New Issue
Block a user