[Gradle] KotlinJvmCompilerOptions: Use JvmTarget.DEFAULT as default value for jvmTarget

KTIJ-24976
This commit is contained in:
Sebastian Sellmair
2023-03-30 15:34:12 +02:00
committed by Space Team
parent eb0ff4fbcd
commit c5e154a325
12 changed files with 26 additions and 17 deletions
@@ -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 {
@@ -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>
@@ -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)
/**
@@ -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")
}
}
}
@@ -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)
@@ -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
@@ -76,7 +76,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
else -> jvm.javaVersion.toString()
}
JvmTarget.fromTarget(normalizedVersion)
}
}.orElse(JvmTarget.DEFAULT)
)
}
}
@@ -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) {