[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 defaultValue: String,
|
||||||
val type: KType,
|
val type: KType,
|
||||||
val kotlinOptionsType: KType,
|
val kotlinOptionsType: KType,
|
||||||
|
val prettyDefaultValue: String? = null,
|
||||||
val possibleValues: List<String>? = null,
|
val possibleValues: List<String>? = null,
|
||||||
val fromKotlinOptionConverterProp: String? = null,
|
val fromKotlinOptionConverterProp: String? = null,
|
||||||
val toKotlinOptionConverterProp: String? = null,
|
val toKotlinOptionConverterProp: String? = null,
|
||||||
@@ -78,16 +79,17 @@ open class DefaultValues(
|
|||||||
)
|
)
|
||||||
|
|
||||||
object JvmTargetVersions : DefaultValues(
|
object JvmTargetVersions : DefaultValues(
|
||||||
"null",
|
"org.jetbrains.kotlin.gradle.dsl.JvmTarget.DEFAULT",
|
||||||
typeOf<JvmTargetDsl?>(),
|
typeOf<JvmTargetDsl>(),
|
||||||
typeOf<String?>(),
|
typeOf<String?>(),
|
||||||
possibleValues = JvmTarget.supportedValues().map { "\"${it.description}\"" },
|
possibleValues = JvmTarget.supportedValues().map { "\"${it.description}\"" },
|
||||||
fromKotlinOptionConverterProp = """
|
fromKotlinOptionConverterProp = """
|
||||||
if (this != null) ${typeOf<JvmTargetDsl>()}.fromTarget(this) else null
|
if (this != null) ${typeOf<JvmTargetDsl>()}.fromTarget(this) else null
|
||||||
""".trimIndent(),
|
""".trimIndent(),
|
||||||
toKotlinOptionConverterProp = """
|
toKotlinOptionConverterProp = """
|
||||||
this?.target
|
this.target
|
||||||
""".trimIndent()
|
""".trimIndent(),
|
||||||
|
prettyDefaultValue = "\"${JvmTarget.DEFAULT}\""
|
||||||
)
|
)
|
||||||
|
|
||||||
object JsEcmaVersions : DefaultValues(
|
object JsEcmaVersions : DefaultValues(
|
||||||
|
|||||||
@@ -878,7 +878,7 @@ private fun Printer.generateOptionDeprecation(property: KProperty1<*, *>) {
|
|||||||
private fun Printer.generateDoc(property: KProperty1<*, *>) {
|
private fun Printer.generateDoc(property: KProperty1<*, *>) {
|
||||||
val description = property.findAnnotation<Argument>()!!.description
|
val description = property.findAnnotation<Argument>()!!.description
|
||||||
val possibleValues = property.gradleValues.possibleValues
|
val possibleValues = property.gradleValues.possibleValues
|
||||||
val defaultValue = property.gradleDefaultValue
|
val defaultValue = property.gradleValues.prettyDefaultValue ?: property.gradleValues.defaultValue
|
||||||
|
|
||||||
println("/**")
|
println("/**")
|
||||||
println(" * ${description.replace("\n", " ")}")
|
println(" * ${description.replace("\n", " ")}")
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ internal fun generateJvmTarget(
|
|||||||
println("fun fromTarget(target: String): JvmTarget =")
|
println("fun fromTarget(target: String): JvmTarget =")
|
||||||
println(" JvmTarget.values().firstOrNull { it.target == target }")
|
println(" JvmTarget.values().firstOrNull { it.target == target }")
|
||||||
println(" ?: throw IllegalArgumentException(\"Unknown Kotlin JVM target: ${'$'}target\")")
|
println(" ?: throw IllegalArgumentException(\"Unknown Kotlin JVM target: ${'$'}target\")")
|
||||||
|
println()
|
||||||
|
println("val DEFAULT = ${JvmTarget.DEFAULT.name}")
|
||||||
}
|
}
|
||||||
println("}")
|
println("}")
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -25,5 +25,7 @@ enum class JvmTarget(val target: String) {
|
|||||||
fun fromTarget(target: String): JvmTarget =
|
fun fromTarget(target: String): JvmTarget =
|
||||||
JvmTarget.values().firstOrNull { it.target == target }
|
JvmTarget.values().firstOrNull { it.target == target }
|
||||||
?: throw IllegalArgumentException("Unknown Kotlin JVM 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 class org/jetbrains/kotlin/gradle/dsl/JvmTarget$Companion {
|
||||||
public final fun fromTarget (Ljava/lang/String;)Lorg/jetbrains/kotlin/gradle/dsl/JvmTarget;
|
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 {
|
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
|
* 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"
|
* 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
|
@get:org.gradle.api.tasks.Input
|
||||||
val jvmTarget: org.gradle.api.provider.Property<org.jetbrains.kotlin.gradle.dsl.JvmTarget>
|
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 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
|
* 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"
|
* 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?
|
var jvmTarget: kotlin.String
|
||||||
get() = options.jvmTarget.orNull.jvmTargetKotlinOption
|
get() = options.jvmTarget.get().jvmTargetKotlinOption
|
||||||
set(value) = options.jvmTarget.set(value.jvmTargetCompilerOption)
|
set(value) = options.jvmTarget.set(value.jvmTargetCompilerOption)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+2
-2
@@ -584,9 +584,9 @@ class KotlinJavaToolchainTest : KGPBaseTest() {
|
|||||||
tasks.named("compileKotlin") {
|
tasks.named("compileKotlin") {
|
||||||
doLast {
|
doLast {
|
||||||
def actualJvmTarget = compilerOptions.jvmTarget.orNull
|
def actualJvmTarget = compilerOptions.jvmTarget.orNull
|
||||||
if (actualJvmTarget != null) {
|
if (actualJvmTarget != org.jetbrains.kotlin.gradle.dsl.JvmTarget.DEFAULT) {
|
||||||
//noinspection GroovyAssignabilityCheck
|
//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)
|
objectFactory.property(kotlin.Boolean::class.java).convention(false)
|
||||||
|
|
||||||
override val jvmTarget: org.gradle.api.provider.Property<org.jetbrains.kotlin.gradle.dsl.JvmTarget> =
|
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> =
|
override val moduleName: org.gradle.api.provider.Property<kotlin.String> =
|
||||||
objectFactory.property(kotlin.String::class.java)
|
objectFactory.property(kotlin.String::class.java)
|
||||||
|
|||||||
+2
-2
@@ -13,7 +13,7 @@ internal object KotlinJvmCompilerOptionsHelper {
|
|||||||
) {
|
) {
|
||||||
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillCompilerArguments(from, args)
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillCompilerArguments(from, args)
|
||||||
args.javaParameters = from.javaParameters.get()
|
args.javaParameters = from.javaParameters.get()
|
||||||
args.jvmTarget = from.jvmTarget.orNull?.target
|
args.jvmTarget = from.jvmTarget.get().target
|
||||||
args.moduleName = from.moduleName.orNull
|
args.moduleName = from.moduleName.orNull
|
||||||
args.noJdk = from.noJdk.get()
|
args.noJdk = from.noJdk.get()
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ internal object KotlinJvmCompilerOptionsHelper {
|
|||||||
) {
|
) {
|
||||||
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillDefaultValues(args)
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillDefaultValues(args)
|
||||||
args.javaParameters = false
|
args.javaParameters = false
|
||||||
args.jvmTarget = null
|
args.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.DEFAULT.target
|
||||||
args.moduleName = null
|
args.moduleName = null
|
||||||
args.noJdk = false
|
args.noJdk = false
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -76,7 +76,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
|
|||||||
else -> jvm.javaVersion.toString()
|
else -> jvm.javaVersion.toString()
|
||||||
}
|
}
|
||||||
JvmTarget.fromTarget(normalizedVersion)
|
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.arguments.K2JVMCompilerArguments;
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector;
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector;
|
||||||
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler;
|
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler;
|
||||||
|
import org.jetbrains.kotlin.config.JvmTarget;
|
||||||
import org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunnerKt;
|
import org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunnerKt;
|
||||||
import org.jetbrains.kotlin.maven.incremental.FileCopier;
|
import org.jetbrains.kotlin.maven.incremental.FileCopier;
|
||||||
import org.jetbrains.kotlin.maven.incremental.MavenICReporter;
|
import org.jetbrains.kotlin.maven.incremental.MavenICReporter;
|
||||||
@@ -186,6 +187,8 @@ public class K2JVMCompileMojo extends KotlinCompileMojoBase<K2JVMCompilerArgumen
|
|||||||
|
|
||||||
if (jvmTarget != null) {
|
if (jvmTarget != null) {
|
||||||
arguments.setJvmTarget(jvmTarget);
|
arguments.setJvmTarget(jvmTarget);
|
||||||
|
} else {
|
||||||
|
arguments.setJvmTarget(JvmTarget.DEFAULT.getDescription());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (jdkHome != null) {
|
if (jdkHome != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user