[Gradle] Deprecate kotlinOptions DSL in KotlinCompilation

^KT-63419 In Progress
This commit is contained in:
Yahor Berdnikau
2024-02-23 13:06:18 +01:00
committed by Space Team
parent 2e3a209d0d
commit 433bec3700
6 changed files with 40 additions and 2 deletions
@@ -268,6 +268,10 @@ public final class org/jetbrains/kotlin/gradle/dsl/KotlinCompile$DefaultImpls {
public static fun kotlinOptions (Lorg/jetbrains/kotlin/gradle/dsl/KotlinCompile;Lorg/gradle/api/Action;)V
}
public final class org/jetbrains/kotlin/gradle/dsl/KotlinCompileKt {
public static final field KOTLIN_OPTIONS_AS_TOOLS_DEPRECATION_MESSAGE Ljava/lang/String;
}
public abstract interface annotation class org/jetbrains/kotlin/gradle/dsl/KotlinGradlePluginDsl : java/lang/annotation/Annotation {
}
@@ -9,6 +9,7 @@ import groovy.lang.Closure
import org.gradle.api.Action
import org.gradle.api.Task
import org.gradle.api.tasks.Internal
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
/**
@@ -32,12 +33,16 @@ interface KotlinCompile<out T : KotlinCommonOptions> : Task {
*
* The [kotlinOptions] configuration is delegated to the related task `compilerOptions` input configuration.
*/
@OptIn(InternalKotlinGradlePluginApi::class)
@Deprecated(message = KOTLIN_OPTIONS_DEPRECATION_MESSAGE)
@get:Internal
val kotlinOptions: T
/**
* Configures the [kotlinOptions] with the provided configuration.
*/
@OptIn(InternalKotlinGradlePluginApi::class)
@Deprecated(message = KOTLIN_OPTIONS_DEPRECATION_MESSAGE)
fun kotlinOptions(fn: T.() -> Unit) {
kotlinOptions.fn()
}
@@ -45,6 +50,8 @@ interface KotlinCompile<out T : KotlinCommonOptions> : Task {
/**
* Configures the [kotlinOptions] with the provided configuration.
*/
@OptIn(InternalKotlinGradlePluginApi::class)
@Deprecated(message = KOTLIN_OPTIONS_DEPRECATION_MESSAGE)
fun kotlinOptions(fn: Action<in T>) {
fn.execute(kotlinOptions)
}
@@ -57,3 +64,15 @@ interface KotlinCompile<out T : KotlinCommonOptions> : Task {
project.configure(kotlinOptions, fn)
}
}
/**
* @suppress
*/
@InternalKotlinGradlePluginApi
const val KOTLIN_OPTIONS_DEPRECATION_MESSAGE = "Please migrate to the compilerOptions DSL. More details are here: https://kotl.in/u1r8ln"
/**
* @suppress
*/
@InternalKotlinGradlePluginApi
const val KOTLIN_OPTIONS_AS_TOOLS_DEPRECATION_MESSAGE = "Please migrate to toolOptions DSL. More details are here: https://kotl.in/u1r8ln"
@@ -15,10 +15,10 @@ import org.gradle.api.file.FileCollection
import org.gradle.api.file.SourceDirectorySet
import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptionsDeprecated
import org.jetbrains.kotlin.gradle.dsl.KotlinCompileDeprecated
import org.jetbrains.kotlin.gradle.dsl.KotlinGradlePluginDsl
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
import org.jetbrains.kotlin.tooling.core.HasMutableExtras
@@ -95,13 +95,25 @@ interface KotlinCompilation<out T : KotlinCommonOptionsDeprecated> : Named,
val compileTaskProvider: TaskProvider<out KotlinCompilationTask<*>>
@OptIn(InternalKotlinGradlePluginApi::class)
@Deprecated(
message = KOTLIN_OPTIONS_DEPRECATION_MESSAGE
)
val kotlinOptions: T
@OptIn(InternalKotlinGradlePluginApi::class)
@Deprecated(
message = KOTLIN_OPTIONS_DEPRECATION_MESSAGE
)
fun kotlinOptions(configure: T.() -> Unit) {
@Suppress("DEPRECATION")
configure(kotlinOptions)
}
@OptIn(InternalKotlinGradlePluginApi::class)
@Deprecated(
message = KOTLIN_OPTIONS_DEPRECATION_MESSAGE
)
fun kotlinOptions(configure: Action<@UnsafeVariance T>) {
@Suppress("DEPRECATION")
configure.execute(kotlinOptions)
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions
import org.jetbrains.kotlin.gradle.plugin.mpp.external.DecoratedExternalKotlinCompilation
class PrototypeAndroidCompilation(delegate: Delegate) : DecoratedExternalKotlinCompilation(delegate) {
@Suppress("OVERRIDE_DEPRECATION")
override val kotlinOptions: KotlinCommonOptions
get() = super.kotlinOptions as KotlinJvmOptions
@@ -169,6 +169,7 @@ internal class KotlinCompilationImpl constructor(
//region CompilerOptions & KotlinOptions
@Suppress("OVERRIDE_DEPRECATION")
override val kotlinOptions: KotlinCommonOptions
get() = params.kotlinOptions
@@ -94,6 +94,7 @@ internal fun filterModuleName(moduleName: String): String =
moduleName.replace(invalidModuleNameCharactersRegex, "_")
internal inline fun <reified T : KotlinCommonOptions> InternalKotlinCompilation<*>.castKotlinOptionsType(): InternalKotlinCompilation<T> {
@Suppress("DEPRECATION")
this.kotlinOptions as T
@Suppress("UNCHECKED_CAST")
return this as InternalKotlinCompilation<T>