[Gradle] KotlinJvmCompilerOptions: Use JvmTarget.DEFAULT as default value for jvmTarget
KTIJ-24976
This commit is contained in:
committed by
Space Team
parent
eb0ff4fbcd
commit
c5e154a325
@@ -24,6 +24,7 @@ open class DefaultValues(
|
||||
val defaultValue: String,
|
||||
val type: KType,
|
||||
val kotlinOptionsType: KType,
|
||||
val prettyDefaultValue: String? = null,
|
||||
val possibleValues: List<String>? = null,
|
||||
val fromKotlinOptionConverterProp: String? = null,
|
||||
val toKotlinOptionConverterProp: String? = null,
|
||||
@@ -78,16 +79,17 @@ open class DefaultValues(
|
||||
)
|
||||
|
||||
object JvmTargetVersions : DefaultValues(
|
||||
"null",
|
||||
typeOf<JvmTargetDsl?>(),
|
||||
"org.jetbrains.kotlin.gradle.dsl.JvmTarget.DEFAULT",
|
||||
typeOf<JvmTargetDsl>(),
|
||||
typeOf<String?>(),
|
||||
possibleValues = JvmTarget.supportedValues().map { "\"${it.description}\"" },
|
||||
fromKotlinOptionConverterProp = """
|
||||
if (this != null) ${typeOf<JvmTargetDsl>()}.fromTarget(this) else null
|
||||
""".trimIndent(),
|
||||
toKotlinOptionConverterProp = """
|
||||
this?.target
|
||||
""".trimIndent()
|
||||
this.target
|
||||
""".trimIndent(),
|
||||
prettyDefaultValue = "\"${JvmTarget.DEFAULT}\""
|
||||
)
|
||||
|
||||
object JsEcmaVersions : DefaultValues(
|
||||
|
||||
@@ -878,7 +878,7 @@ private fun Printer.generateOptionDeprecation(property: KProperty1<*, *>) {
|
||||
private fun Printer.generateDoc(property: KProperty1<*, *>) {
|
||||
val description = property.findAnnotation<Argument>()!!.description
|
||||
val possibleValues = property.gradleValues.possibleValues
|
||||
val defaultValue = property.gradleDefaultValue
|
||||
val defaultValue = property.gradleValues.prettyDefaultValue ?: property.gradleValues.defaultValue
|
||||
|
||||
println("/**")
|
||||
println(" * ${description.replace("\n", " ")}")
|
||||
|
||||
@@ -28,6 +28,8 @@ internal fun generateJvmTarget(
|
||||
println("fun fromTarget(target: String): JvmTarget =")
|
||||
println(" JvmTarget.values().firstOrNull { it.target == target }")
|
||||
println(" ?: throw IllegalArgumentException(\"Unknown Kotlin JVM target: ${'$'}target\")")
|
||||
println()
|
||||
println("val DEFAULT = ${JvmTarget.DEFAULT.name}")
|
||||
}
|
||||
println("}")
|
||||
}
|
||||
|
||||
+2
@@ -25,5 +25,7 @@ enum class JvmTarget(val target: String) {
|
||||
fun fromTarget(target: String): JvmTarget =
|
||||
JvmTarget.values().firstOrNull { it.target == target }
|
||||
?: throw IllegalArgumentException("Unknown Kotlin JVM target: $target")
|
||||
|
||||
val DEFAULT = JVM_1_8
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,6 +100,7 @@ public final class org/jetbrains/kotlin/gradle/dsl/JvmTarget : java/lang/Enum {
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/dsl/JvmTarget$Companion {
|
||||
public final fun fromTarget (Ljava/lang/String;)Lorg/jetbrains/kotlin/gradle/dsl/JvmTarget;
|
||||
public final fun getDEFAULT ()Lorg/jetbrains/kotlin/gradle/dsl/JvmTarget;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/dsl/KaptArguments {
|
||||
|
||||
+1
-2
@@ -17,9 +17,8 @@ interface KotlinJvmCompilerOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommo
|
||||
/**
|
||||
* Target version of the generated JVM bytecode (1.8, 9, 10, ..., 20), default is 1.8
|
||||
* Possible values: "1.8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"
|
||||
* Default value: null
|
||||
* Default value: "1.8"
|
||||
*/
|
||||
@get:org.gradle.api.tasks.Optional
|
||||
@get:org.gradle.api.tasks.Input
|
||||
val jvmTarget: org.gradle.api.provider.Property<org.jetbrains.kotlin.gradle.dsl.JvmTarget>
|
||||
|
||||
|
||||
+4
-4
@@ -18,15 +18,15 @@ interface KotlinJvmOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||
|
||||
private val kotlin.String?.jvmTargetCompilerOption get() = if (this != null) org.jetbrains.kotlin.gradle.dsl.JvmTarget.fromTarget(this) else null
|
||||
|
||||
private val org.jetbrains.kotlin.gradle.dsl.JvmTarget?.jvmTargetKotlinOption get() = this?.target
|
||||
private val org.jetbrains.kotlin.gradle.dsl.JvmTarget.jvmTargetKotlinOption get() = this.target
|
||||
|
||||
/**
|
||||
* Target version of the generated JVM bytecode (1.8, 9, 10, ..., 20), default is 1.8
|
||||
* Possible values: "1.8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"
|
||||
* Default value: null
|
||||
* Default value: "1.8"
|
||||
*/
|
||||
var jvmTarget: kotlin.String?
|
||||
get() = options.jvmTarget.orNull.jvmTargetKotlinOption
|
||||
var jvmTarget: kotlin.String
|
||||
get() = options.jvmTarget.get().jvmTargetKotlinOption
|
||||
set(value) = options.jvmTarget.set(value.jvmTargetCompilerOption)
|
||||
|
||||
/**
|
||||
|
||||
+2
-2
@@ -584,9 +584,9 @@ class KotlinJavaToolchainTest : KGPBaseTest() {
|
||||
tasks.named("compileKotlin") {
|
||||
doLast {
|
||||
def actualJvmTarget = compilerOptions.jvmTarget.orNull
|
||||
if (actualJvmTarget != null) {
|
||||
if (actualJvmTarget != org.jetbrains.kotlin.gradle.dsl.JvmTarget.DEFAULT) {
|
||||
//noinspection GroovyAssignabilityCheck
|
||||
throw new GradleException("Expected `jvmTarget` value is 'null' but the actual value was ${'$'}actualJvmTarget")
|
||||
throw new GradleException("Expected `jvmTarget` value is 'JvmTarget.DEFAULT' but the actual value was ${'$'}actualJvmTarget")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ internal abstract class KotlinJvmCompilerOptionsDefault @javax.inject.Inject con
|
||||
objectFactory.property(kotlin.Boolean::class.java).convention(false)
|
||||
|
||||
override val jvmTarget: org.gradle.api.provider.Property<org.jetbrains.kotlin.gradle.dsl.JvmTarget> =
|
||||
objectFactory.property(org.jetbrains.kotlin.gradle.dsl.JvmTarget::class.java)
|
||||
objectFactory.property(org.jetbrains.kotlin.gradle.dsl.JvmTarget::class.java).convention(org.jetbrains.kotlin.gradle.dsl.JvmTarget.DEFAULT)
|
||||
|
||||
override val moduleName: org.gradle.api.provider.Property<kotlin.String> =
|
||||
objectFactory.property(kotlin.String::class.java)
|
||||
|
||||
+2
-2
@@ -13,7 +13,7 @@ internal object KotlinJvmCompilerOptionsHelper {
|
||||
) {
|
||||
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillCompilerArguments(from, args)
|
||||
args.javaParameters = from.javaParameters.get()
|
||||
args.jvmTarget = from.jvmTarget.orNull?.target
|
||||
args.jvmTarget = from.jvmTarget.get().target
|
||||
args.moduleName = from.moduleName.orNull
|
||||
args.noJdk = from.noJdk.get()
|
||||
|
||||
@@ -27,7 +27,7 @@ internal object KotlinJvmCompilerOptionsHelper {
|
||||
) {
|
||||
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillDefaultValues(args)
|
||||
args.javaParameters = false
|
||||
args.jvmTarget = null
|
||||
args.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.DEFAULT.target
|
||||
args.moduleName = null
|
||||
args.noJdk = false
|
||||
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
|
||||
else -> jvm.javaVersion.toString()
|
||||
}
|
||||
JvmTarget.fromTarget(normalizedVersion)
|
||||
}
|
||||
}.orElse(JvmTarget.DEFAULT)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+3
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.cli.common.ExitCode;
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments;
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector;
|
||||
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler;
|
||||
import org.jetbrains.kotlin.config.JvmTarget;
|
||||
import org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunnerKt;
|
||||
import org.jetbrains.kotlin.maven.incremental.FileCopier;
|
||||
import org.jetbrains.kotlin.maven.incremental.MavenICReporter;
|
||||
@@ -186,6 +187,8 @@ public class K2JVMCompileMojo extends KotlinCompileMojoBase<K2JVMCompilerArgumen
|
||||
|
||||
if (jvmTarget != null) {
|
||||
arguments.setJvmTarget(jvmTarget);
|
||||
} else {
|
||||
arguments.setJvmTarget(JvmTarget.DEFAULT.getDescription());
|
||||
}
|
||||
|
||||
if (jdkHome != null) {
|
||||
|
||||
Reference in New Issue
Block a user