[Gradle] Deprecate Kotlin*Options types

^KT-63419 In Progress
This commit is contained in:
Yahor Berdnikau
2024-02-23 19:57:34 +01:00
committed by Space Team
parent 4921a29aa5
commit 6e874340e9
46 changed files with 112 additions and 64 deletions
@@ -654,10 +654,12 @@ private fun Printer.generateDeprecatedInterface(
parentType: FqName? = null,
) {
val afterType = parentType?.let { " : $it" }
// Add @Deprecated annotation back once proper migration to compilerOptions will be supported
val modifier = """
interface
""".trimIndent()
|@Deprecated(
| "The kotlinOptions types are deprecated, please migrate to the compilerOptions types. More details are here: https://kotl.in/u1r8ln"
|)
|interface
""".trimMargin()
val deprecatedProperties = properties.filter { it.generateDeprecatedKotlinOption }
// KotlinMultiplatformCommonOptions doesn't have any options, but it is being kept for backward compatibility
if (deprecatedProperties.isNotEmpty() || type.asString().endsWith("KotlinMultiplatformCommonOptions")) {
@@ -29,6 +29,7 @@ interface KotlinNativeArtifact : KotlinArtifact {
val modes: Set<NativeBuildType>
val isStatic: Boolean
val linkerOptions: List<String>
@Suppress("DEPRECATION")
val kotlinOptionsFn: KotlinCommonToolOptions.() -> Unit
val toolOptionsConfigure: KotlinCommonCompilerToolOptions.() -> Unit
val binaryOptions: Map<String, String>
@@ -84,7 +85,7 @@ interface KotlinNativeArtifactConfig : KotlinArtifactConfig {
fun modes(vararg modes: NativeBuildType)
var isStatic: Boolean
var linkerOptions: List<String>
fun kotlinOptions(fn: Action<KotlinCommonToolOptions>)
fun kotlinOptions(@Suppress("DEPRECATION") fn: Action<KotlinCommonToolOptions>)
fun toolOptions(configure: Action<KotlinCommonCompilerToolOptions>)
fun binaryOption(name: String, value: String)
}
@@ -8,6 +8,9 @@ package org.jetbrains.kotlin.gradle.dsl
/**
* Common compiler options for all Kotlin platforms.
*/
@Deprecated(
"The kotlinOptions types are deprecated, please migrate to the compilerOptions types. More details are here: https://kotl.in/u1r8ln"
)
interface KotlinCommonOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonToolOptions {
/**
* @suppress
@@ -8,6 +8,9 @@ package org.jetbrains.kotlin.gradle.dsl
/**
* Common options for all Kotlin platforms' compilations and tools.
*/
@Deprecated(
"The kotlinOptions types are deprecated, please migrate to the compilerOptions types. More details are here: https://kotl.in/u1r8ln"
)
interface KotlinCommonToolOptions {
/**
* @suppress
@@ -22,11 +22,12 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
*
* @see [KotlinCommonOptions]
*/
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION")
@Deprecated(
message = "Replaced with 'KotlinCompilationTask' that exposes the compiler options DSL. More details are here: https://kotl.in/u1r8ln"
)
@KotlinGradlePluginDsl
interface KotlinCompile<out T : KotlinCommonOptions> : Task {
interface KotlinCompile<out T : KotlinCommonOptionsDeprecated> : Task {
/**
* Represents the compiler options used by a Kotlin compilation process.
@@ -8,6 +8,9 @@ package org.jetbrains.kotlin.gradle.dsl
/**
* Options for the Kotlin JavaScript dead code elimination tool.
*/
@Deprecated(
"The kotlinOptions types are deprecated, please migrate to the compilerOptions types. More details are here: https://kotl.in/u1r8ln"
)
interface KotlinJsDceOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonToolOptions {
/**
* @suppress
@@ -8,6 +8,9 @@ package org.jetbrains.kotlin.gradle.dsl
/**
* Compiler options for Kotlin/JS.
*/
@Deprecated(
"The kotlinOptions types are deprecated, please migrate to the compilerOptions types. More details are here: https://kotl.in/u1r8ln"
)
interface KotlinJsOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions {
/**
* @suppress
@@ -8,6 +8,9 @@ package org.jetbrains.kotlin.gradle.dsl
/**
* Compiler options for Kotlin/JVM.
*/
@Deprecated(
"The kotlinOptions types are deprecated, please migrate to the compilerOptions types. More details are here: https://kotl.in/u1r8ln"
)
interface KotlinJvmOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions {
/**
* @suppress
@@ -8,6 +8,9 @@ package org.jetbrains.kotlin.gradle.dsl
/**
* Compiler options for the Kotlin common platform.
*/
@Deprecated(
"The kotlinOptions types are deprecated, please migrate to the compilerOptions types. More details are here: https://kotl.in/u1r8ln"
)
interface KotlinMultiplatformCommonOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions {
/**
* @suppress
@@ -3,6 +3,8 @@
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
@file:Suppress("TYPEALIAS_EXPANSION_DEPRECATION")
package org.jetbrains.kotlin.gradle.plugin
import org.gradle.api.Action
@@ -138,6 +138,7 @@ interface BaseKotlinCompile : KotlinCompileTool {
/**
* Represents a Kotlin task compiling given Kotlin sources into JVM class files.
*/
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION")
interface KotlinJvmCompile : BaseKotlinCompile,
KotlinCompileDeprecated<KotlinJvmOptionsDeprecated>,
KotlinCompilationTask<KotlinJvmCompilerOptions>,
@@ -43,6 +43,7 @@ interface KotlinCommonCompile : KotlinCompile<KotlinMultiplatformCommonOptions>,
interface KotlinJsDce : Task, KotlinToolTask<KotlinJsDceCompilerToolOptions> {
@Suppress("DEPRECATION")
@Deprecated(KOTLIN_OPTIONS_AS_TOOLS_DEPRECATION_MESSAGE)
@get:Internal
val dceOptions: KotlinJsDceOptions
@@ -198,12 +198,16 @@ abstract class KotlinSingleTargetExtension<TARGET : KotlinTarget>(project: Proje
abstract class KotlinSingleJavaTargetExtension(project: Project) : KotlinSingleTargetExtension<KotlinWithJavaTarget<*, *>>(project)
abstract class KotlinJvmProjectExtension(project: Project) : KotlinSingleJavaTargetExtension(project) {
@Suppress("DEPRECATION")
override val target: KotlinWithJavaTarget<KotlinJvmOptions, KotlinJvmCompilerOptions>
get() = targetFuture.getOrThrow()
@Suppress("DEPRECATION")
override val targetFuture = CompletableFuture<KotlinWithJavaTarget<KotlinJvmOptions, KotlinJvmCompilerOptions>>()
open fun target(body: KotlinWithJavaTarget<KotlinJvmOptions, KotlinJvmCompilerOptions>.() -> Unit) {
open fun target(
@Suppress("DEPRECATION") body: KotlinWithJavaTarget<KotlinJvmOptions, KotlinJvmCompilerOptions>.() -> Unit
) {
project.launch(Undispatched) { targetFuture.await().body() }
}
@@ -221,14 +225,18 @@ abstract class KotlinJvmProjectExtension(project: Project) : KotlinSingleJavaTar
}
abstract class Kotlin2JsProjectExtension(project: Project) : KotlinSingleJavaTargetExtension(project) {
@Suppress("DEPRECATION")
override val target: KotlinWithJavaTarget<KotlinJsOptions, KotlinJsCompilerOptions>
get() {
if (!targetFuture.isCompleted) throw IllegalStateException("Extension target is not initialized!")
return targetFuture.getOrThrow()
}
@Suppress("DEPRECATION")
override val targetFuture = CompletableFuture<KotlinWithJavaTarget<KotlinJsOptions, KotlinJsCompilerOptions>>()
open fun target(body: KotlinWithJavaTarget<KotlinJsOptions, KotlinJsCompilerOptions>.() -> Unit) {
open fun target(
@Suppress("DEPRECATION") body: KotlinWithJavaTarget<KotlinJsOptions, KotlinJsCompilerOptions>.() -> Unit
) {
project.launch(Undispatched) { targetFuture.await().body() }
}
}
@@ -321,10 +329,13 @@ abstract class KotlinJsProjectExtension(project: Project) :
abstract class KotlinCommonProjectExtension(project: Project) : KotlinSingleJavaTargetExtension(project) {
override val target: KotlinWithJavaTarget<*, *> get() = targetFuture.getOrThrow()
@Suppress("DEPRECATION")
override val targetFuture =
CompletableFuture<KotlinWithJavaTarget<KotlinMultiplatformCommonOptions, KotlinMultiplatformCommonCompilerOptions>>()
open fun target(
@Suppress("DEPRECATION")
body: KotlinWithJavaTarget<KotlinMultiplatformCommonOptions, KotlinMultiplatformCommonCompilerOptions>.() -> Unit,
) = project.launch(Undispatched) {
targetFuture.await().body()
@@ -31,7 +31,7 @@ internal open class Kotlin2JsPlugin(
Kotlin2JsSourceSetProcessor(tasksProvider, KotlinCompilationInfo(compilation))
override fun apply(project: Project) {
@Suppress("UNCHECKED_CAST", "TYPEALIAS_EXPANSION_DEPRECATION")
@Suppress("UNCHECKED_CAST", "TYPEALIAS_EXPANSION_DEPRECATION", "DEPRECATION")
val target = project.objects.newInstance(
KotlinWithJavaTarget::class.java,
project,
@@ -10,10 +10,7 @@ import org.gradle.api.GradleException
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.model.builder.KotlinModelBuilder
import org.jetbrains.kotlin.gradle.plugin.KotlinJvmPlugin.Companion.configureCompilerOptionsForTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
@@ -48,6 +48,7 @@ abstract class KotlinBaseApiPlugin : DefaultKotlinBasePlugin(), KotlinJvmFactory
.configureExperimentalTryNext(myProject)
}
@Suppress("DEPRECATION")
@Deprecated("Replaced by compilerJvmOptions", replaceWith = ReplaceWith("createCompilerJvmOptions()"))
override fun createKotlinJvmOptions(): KotlinJvmOptions {
return object : KotlinJvmOptions {
@@ -27,7 +27,7 @@ internal open class KotlinCommonPlugin(
KotlinCommonSourceSetProcessor(KotlinCompilationInfo(compilation), tasksProvider)
override fun apply(project: Project) {
@Suppress("UNCHECKED_CAST", "TYPEALIAS_EXPANSION_DEPRECATION")
@Suppress("UNCHECKED_CAST", "TYPEALIAS_EXPANSION_DEPRECATION", "DEPRECATION")
val target = project.objects.newInstance(
KotlinWithJavaTarget::class.java,
project,
@@ -47,7 +47,7 @@ internal open class KotlinJvmPlugin(
Kotlin2JvmSourceSetProcessor(tasksProvider, KotlinCompilationInfo(compilation))
override fun apply(project: Project) {
@Suppress("UNCHECKED_CAST", "TYPEALIAS_EXPANSION_DEPRECATION")
@Suppress("UNCHECKED_CAST", "TYPEALIAS_EXPANSION_DEPRECATION", "DEPRECATION")
val target = (project.objects.newInstance(
KotlinWithJavaTarget::class.java,
project,
@@ -5,9 +5,10 @@
package org.jetbrains.kotlin.gradle.plugin.mpp
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
@Suppress("DEPRECATION")
@Deprecated("Use KotlinCompilation<T> instead")
abstract class AbstractKotlinCompilation<T : KotlinCommonOptions> internal constructor(compilation: KotlinCompilationImpl) :
DecoratedKotlinCompilation<T>(compilation)
@@ -8,9 +8,10 @@
package org.jetbrains.kotlin.gradle.plugin.mpp
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
@Suppress("DEPRECATION")
@InternalKotlinGradlePluginApi
abstract class DecoratedKotlinCompilation<T : KotlinCommonOptions> internal constructor(
internal val compilation: KotlinCompilationImpl,
@@ -18,10 +19,12 @@ abstract class DecoratedKotlinCompilation<T : KotlinCommonOptions> internal cons
override fun toString(): String = compilation.toString()
}
@Suppress("DEPRECATION")
internal inline val <reified T : KotlinCommonOptions> InternalKotlinCompilation<T>.decoratedInstance: DecoratedKotlinCompilation<T>
get() = if (this is DecoratedKotlinCompilation<T>) this
else (target.compilations.getByName(compilationName).internal.castKotlinOptionsType<T>() as DecoratedKotlinCompilation<T>)
@Suppress("DEPRECATION")
internal inline val <reified T : KotlinCommonOptions> InternalKotlinCompilation<T>.decoratedInstanceOrNull: DecoratedKotlinCompilation<T>?
get() = if (this is DecoratedKotlinCompilation<T>) this
else (target.compilations.findByName(compilationName)?.internal?.castKotlinOptionsType<T>() as? DecoratedKotlinCompilation<T>)
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.file.FileCollection
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationC
import org.jetbrains.kotlin.gradle.utils.ObservableSet
import org.jetbrains.kotlin.tooling.core.HasMutableExtras
@Suppress("DEPRECATION")
@InternalKotlinGradlePluginApi
internal interface InternalKotlinCompilation<out T : KotlinCommonOptions> : KotlinCompilation<T>, HasMutableExtras {
override val kotlinSourceSets: ObservableSet<KotlinSourceSet>
@@ -34,6 +35,7 @@ internal interface InternalKotlinCompilation<out T : KotlinCommonOptions> : Kotl
val archiveTaskName: String?
}
@Suppress("DEPRECATION")
internal val <T : KotlinCommonOptions> KotlinCompilation<T>.internal: InternalKotlinCompilation<T>
get() = (this as? InternalKotlinCompilation<T>) ?: throw IllegalArgumentException(
"KotlinCompilation($name) ${this::class} does not implement ${InternalKotlinCompilation::class}"
@@ -6,8 +6,7 @@
package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
@@ -15,8 +14,10 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
import org.jetbrains.kotlin.gradle.tasks.KotlinCompileCommon
import javax.inject.Inject
@Suppress("DEPRECATION")
interface KotlinMetadataCompilation<T : KotlinCommonOptions> : KotlinCompilation<T>
@Suppress("DEPRECATION")
open class KotlinCommonCompilation @Inject internal constructor(compilation: KotlinCompilationImpl) :
@Suppress("DEPRECATION") AbstractKotlinCompilation<KotlinCommonOptions>(compilation),
KotlinMetadataCompilation<KotlinCommonOptions> {
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.DecoratedKotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.*
@@ -69,7 +69,7 @@ internal class KotlinCompilationImplFactory(
fun interface KotlinCompilerOptionsFactory {
data class Options(
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION") val compilerOptions: DeprecatedHasCompilerOptions<*>,
val kotlinOptions: KotlinCommonOptions
@Suppress("DEPRECATION") val kotlinOptions: KotlinCommonOptions
)
fun create(target: KotlinTarget, compilationName: String): Options
@@ -22,6 +22,7 @@ internal object KotlinMultiplatformCommonCompilerOptionsFactory : KotlinCompilat
.configureExperimentalTryNext(target.project)
}
@Suppress("DEPRECATION")
val kotlinOptions = object : KotlinCommonOptions {
override val options: KotlinCommonCompilerOptions
get() = compilerOptions.options
@@ -44,6 +45,7 @@ internal object KotlinNativeCompilerOptionsFactory : KotlinCompilationImplFactor
)
)
@Suppress("DEPRECATION")
val kotlinOptions = object : KotlinCommonOptions {
override val options get() = compilerOptions.options
}
@@ -62,6 +64,7 @@ internal object KotlinJsCompilerOptionsFactory : KotlinCompilationImplFactory.Ko
.configureExperimentalTryNext(target.project)
}
@Suppress("DEPRECATION")
val kotlinOptions = object : KotlinJsOptions {
override val options: KotlinJsCompilerOptions
get() = compilerOptions.options
@@ -80,6 +83,7 @@ internal object KotlinJvmCompilerOptionsFactory : KotlinCompilationImplFactory.K
.configureExperimentalTryNext(target.project)
}
@Suppress("DEPRECATION")
val kotlinOptions = object : KotlinJvmOptions {
override val options: KotlinJvmCompilerOptions
get() = compilerOptions.options
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.gradle.plugin.mpp.external
import org.jetbrains.kotlin.gradle.ExternalKotlinTargetApi
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.DecoratedKotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationI
* Creating an instance will require an instance of [Delegate] which can only be retrieved by calling into the
* [DecoratedExternalKotlinTarget.createCompilation] functions and providing a [ExternalKotlinCompilationDescriptor.compilationFactory]
*/
@Suppress("DEPRECATION")
@ExternalKotlinTargetApi
abstract class DecoratedExternalKotlinCompilation(delegate: Delegate) :
DecoratedKotlinCompilation<KotlinCommonOptions>(delegate.compilation) {
@@ -7,8 +7,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.Project
import org.gradle.api.provider.Provider
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.internal.KAPT_GENERATE_STUBS_PREFIX
import org.jetbrains.kotlin.gradle.internal.getKaptTaskName
import org.jetbrains.kotlin.gradle.plugin.*
@@ -93,7 +92,8 @@ internal fun KotlinCompilation<*>.moduleNameForCompilation(
internal fun filterModuleName(moduleName: String): String =
moduleName.replace(invalidModuleNameCharactersRegex, "_")
internal inline fun <reified T : KotlinCommonOptions> InternalKotlinCompilation<*>.castKotlinOptionsType(): InternalKotlinCompilation<T> {
internal inline fun <@Suppress("DEPRECATION") reified T : KotlinCommonOptions> InternalKotlinCompilation<*>.castKotlinOptionsType(
): InternalKotlinCompilation<T> {
@Suppress("DEPRECATION")
this.kotlinOptions as T
@Suppress("UNCHECKED_CAST")
@@ -13,9 +13,7 @@ import org.gradle.api.Action
import org.gradle.api.attributes.AttributeContainer
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.dsl.JsModuleKind
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
@@ -25,7 +23,7 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
import javax.inject.Inject
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION")
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION", "DEPRECATION")
open class KotlinJsCompilation @Inject internal constructor(
compilation: KotlinCompilationImpl,
) : DeprecatedAbstractKotlinCompilationToRunnableFiles<KotlinJsOptions>(compilation),
@@ -10,15 +10,14 @@ import org.gradle.api.file.FileCollection
import org.gradle.api.provider.Property
import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.compile.JavaCompile
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
import org.jetbrains.kotlin.gradle.utils.*
import javax.inject.Inject
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION")
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION", "DEPRECATION")
open class KotlinJvmAndroidCompilation @Inject internal constructor(
compilation: KotlinCompilationImpl,
val androidVariant: DeprecatedAndroidBaseVariant
@@ -10,8 +10,7 @@ import org.gradle.api.provider.Provider
import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.compile.JavaCompile
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle.Stage.AfterFinaliseDsl
import org.jetbrains.kotlin.gradle.plugin.internal.JavaSourceSetsAccessor
@@ -24,7 +23,7 @@ import org.jetbrains.kotlin.gradle.utils.Future
import org.jetbrains.kotlin.gradle.utils.lenient
import javax.inject.Inject
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION")
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION", "DEPRECATION")
open class KotlinJvmCompilation @Inject internal constructor(
compilation: KotlinCompilationImpl,
) : DeprecatedAbstractKotlinCompilationToRunnableFiles<KotlinJvmOptions>(compilation),
@@ -9,9 +9,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.Project
import org.gradle.api.plugins.JavaPlugin
import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptionsDefault
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
import org.jetbrains.kotlin.gradle.plugin.diagnostics.reportDiagnostic
@@ -20,6 +18,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
import org.jetbrains.kotlin.gradle.utils.configureExperimentalTryNext
import org.jetbrains.kotlin.gradle.utils.maybeCreateResolvable
@Suppress("DEPRECATION")
@DeprecatedTargetPresetApi
class KotlinJvmWithJavaTargetPreset(
private val project: Project
@@ -9,15 +9,14 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.compile.JavaCompile
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
import org.jetbrains.kotlin.gradle.utils.named
import javax.inject.Inject
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION")
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION", "DEPRECATION")
open class KotlinWithJavaCompilation<KotlinOptionsType : KotlinCommonOptions, CO : KotlinCommonCompilerOptions> @Inject internal constructor(
compilation: KotlinCompilationImpl,
val javaSourceSet: SourceSet,
@@ -6,8 +6,7 @@
@file:Suppress("PackageDirectoryMismatch", "TYPEALIAS_EXPANSION_DEPRECATION") // Old package for compatibility
package org.jetbrains.kotlin.gradle.plugin.mpp
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.DeprecatedHasCompilerOptions
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.DefaultKotlinCompilationPreConfigure
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinJvmCompilationAssociator
@@ -17,6 +16,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.KotlinComp
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.plus
import org.jetbrains.kotlin.gradle.utils.filesProvider
@Suppress("DEPRECATION")
class KotlinWithJavaCompilationFactory<KotlinOptionsType : KotlinCommonOptions, CO : KotlinCommonCompilerOptions> internal constructor(
override val target: KotlinWithJavaTarget<KotlinOptionsType, CO>,
val compilerOptionsFactory: () -> DeprecatedHasCompilerOptions<CO>,
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.gradle.utils.newInstance
import java.io.File
import javax.inject.Inject
@Suppress("DEPRECATION")
abstract class KotlinWithJavaTarget<KotlinOptionsType : KotlinCommonOptions, CO : KotlinCommonCompilerOptions> @Inject constructor(
project: Project,
override val platformType: KotlinPlatformType,
@@ -10,8 +10,7 @@ import org.gradle.api.Action
import org.gradle.api.NamedDomainObjectContainer
import org.gradle.api.Project
import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinNativeCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
import org.jetbrains.kotlin.gradle.targets.native.NativeCompilerOptions
@@ -20,7 +19,7 @@ import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
import org.jetbrains.kotlin.konan.target.KonanTarget
import javax.inject.Inject
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION")
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION", "DEPRECATION")
abstract class AbstractKotlinNativeCompilation internal constructor(
compilation: KotlinCompilationImpl,
val konanTarget: KonanTarget
@@ -80,6 +79,7 @@ open class KotlinNativeCompilation @Inject internal constructor(
get() = lowerCamelCaseName(target.disambiguationClassifier, compilation.compilationName, "binaries")
}
@Suppress("DEPRECATION")
open class KotlinSharedNativeCompilation @Inject internal constructor(
val konanTargets: List<KonanTarget>,
compilation: KotlinCompilationImpl
@@ -6,7 +6,6 @@
@file:Suppress("PackageDirectoryMismatch") // Old package for compatibility
package org.jetbrains.kotlin.gradle.tasks
import groovy.lang.Closure
import org.gradle.api.artifacts.component.ModuleComponentIdentifier
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
import org.gradle.api.artifacts.result.ResolvedDependencyResult
@@ -128,21 +127,17 @@ constructor(
@get:Internal
val additionalCompilerOptions: Provider<Collection<String>> = toolOptions.freeCompilerArgs as Provider<Collection<String>>
@Suppress("DEPRECATION")
@get:Internal
val kotlinOptions: KotlinCommonToolOptions = object : KotlinCommonToolOptions {
override val options: KotlinCommonCompilerToolOptions
get() = toolOptions
}
fun kotlinOptions(fn: KotlinCommonToolOptions.() -> Unit) {
fun kotlinOptions(@Suppress("DEPRECATION") fn: KotlinCommonToolOptions.() -> Unit) {
kotlinOptions.fn()
}
fun kotlinOptions(fn: Closure<*>) {
fn.delegate = kotlinOptions
fn.call()
}
// Binary-specific options.
private val _entryPoint: String by lazyConvention { (binary as? Executable)?.entryPoint.orEmpty() }
@@ -119,6 +119,7 @@ internal fun Collection<File>.filterKlibsPassedToCompiler(): List<File> = filter
internal fun FileCollection.filterKlibsPassedToCompiler(): FileCollection = filter(File::canKlibBePassedToCompiler)
// endregion
@Suppress("DEPRECATION")
@DisableCachingByDefault(because = "Abstract super-class, not to be instantiated directly")
abstract class AbstractKotlinNativeCompile<
T : KotlinCommonToolOptions,
@@ -266,6 +267,7 @@ abstract class AbstractKotlinNativeCompile<
/**
* A task producing a klibrary from a compilation.
*/
@Suppress("DEPRECATION")
@CacheableTask
abstract class KotlinNativeCompile
@Inject
@@ -377,6 +379,7 @@ internal constructor(
// region Kotlin options
@Suppress("DEPRECATION")
@Deprecated(KOTLIN_OPTIONS_DEPRECATION_MESSAGE)
override val kotlinOptions: KotlinCommonOptions = object : KotlinCommonOptions {
override val options: KotlinCommonCompilerOptions
@@ -56,7 +56,9 @@ abstract class KotlinNativeArtifactConfigImpl(artifactName: String) : KotlinArti
@Suppress("DEPRECATION")
internal var kotlinOptionsFn: KotlinCommonToolOptions.() -> Unit = {}
override fun kotlinOptions(fn: Action<KotlinCommonToolOptions>) {
override fun kotlinOptions(
@Suppress("DEPRECATION") fn: Action<KotlinCommonToolOptions>
) {
kotlinOptionsFn = fn::execute
}
@@ -67,7 +67,7 @@ class KotlinNativeFatFrameworkImpl(
override val modes: Set<NativeBuildType>,
override val isStatic: Boolean,
override val linkerOptions: List<String>,
override val kotlinOptionsFn: KotlinCommonToolOptions.() -> Unit,
@Suppress("DEPRECATION") override val kotlinOptionsFn: KotlinCommonToolOptions.() -> Unit,
override val toolOptionsConfigure: KotlinCommonCompilerToolOptions.() -> Unit,
override val binaryOptions: Map<String, String>,
override val targets: Set<KonanTarget>,
@@ -59,7 +59,7 @@ class KotlinNativeFrameworkImpl(
override val modes: Set<NativeBuildType>,
override val isStatic: Boolean,
override val linkerOptions: List<String>,
override val kotlinOptionsFn: KotlinCommonToolOptions.() -> Unit,
@Suppress("DEPRECATION") override val kotlinOptionsFn: KotlinCommonToolOptions.() -> Unit,
override val toolOptionsConfigure: KotlinCommonCompilerToolOptions.() -> Unit,
override val binaryOptions: Map<String, String>,
override val target: KonanTarget,
@@ -10,10 +10,7 @@ import org.gradle.api.Task
import org.gradle.api.plugins.BasePlugin
import org.gradle.api.plugins.ExtensionAware
import org.gradle.language.base.plugins.LifecycleBasePlugin
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonToolOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinNativeLibrary
import org.jetbrains.kotlin.gradle.dsl.KotlinNativeLibraryConfig
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeOutputKind
import org.jetbrains.kotlin.gradle.plugin.mpp.enabledOnCurrentHost
@@ -59,7 +56,7 @@ class KotlinNativeLibraryImpl(
override val modes: Set<NativeBuildType>,
override val isStatic: Boolean,
override val linkerOptions: List<String>,
override val kotlinOptionsFn: KotlinCommonToolOptions.() -> Unit,
@Suppress("DEPRECATION") override val kotlinOptionsFn: KotlinCommonToolOptions.() -> Unit,
override val toolOptionsConfigure: KotlinCommonCompilerToolOptions.() -> Unit,
override val binaryOptions: Map<String, String>,
override val target: KonanTarget,
@@ -112,17 +112,22 @@ abstract class KotlinNativeLinkArtifactTask @Inject constructor(
freeCompilerArgs.addAll(PropertiesProvider(project).nativeLinkArgs)
}
@Suppress("DEPRECATION")
@get:Internal
val kotlinOptions = object : KotlinCommonToolOptions {
override val options: KotlinCommonCompilerToolOptions
get() = toolOptions
}
fun kotlinOptions(fn: KotlinCommonToolOptions.() -> Unit) {
fun kotlinOptions(
@Suppress("DEPRECATION") fn: KotlinCommonToolOptions.() -> Unit
) {
kotlinOptions.fn()
}
fun kotlinOptions(fn: Action<KotlinCommonToolOptions>) {
fun kotlinOptions(
@Suppress("DEPRECATION") fn: Action<KotlinCommonToolOptions>
) {
fn.execute(kotlinOptions)
}
@@ -67,7 +67,7 @@ class KotlinNativeXCFrameworkImpl(
override val modes: Set<NativeBuildType>,
override val isStatic: Boolean,
override val linkerOptions: List<String>,
override val kotlinOptionsFn: KotlinCommonToolOptions.() -> Unit,
@Suppress("DEPRECATION") override val kotlinOptionsFn: KotlinCommonToolOptions.() -> Unit,
override val toolOptionsConfigure: KotlinCommonCompilerToolOptions.() -> Unit,
override val binaryOptions: Map<String, String>,
override val targets: Set<KonanTarget>,
@@ -60,6 +60,7 @@ abstract class Kotlin2JsCompile @Inject constructor(
compilerOptions.verbose.convention(logger.isDebugEnabled)
}
@Suppress("DEPRECATION")
@Deprecated(KOTLIN_OPTIONS_DEPRECATION_MESSAGE)
override val kotlinOptions: KotlinJsOptions = KotlinJsOptionsCompat(
{ this },
@@ -61,6 +61,7 @@ abstract class KotlinCompile @Inject constructor(
K2MultiplatformCompilationTask,
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION") KotlinJvmCompileDsl {
@Suppress("DEPRECATION")
@Deprecated(KOTLIN_OPTIONS_DEPRECATION_MESSAGE)
final override val kotlinOptions: KotlinJvmOptions = KotlinJvmOptionsCompat(
{ this },
@@ -50,6 +50,7 @@ abstract class KotlinCompileCommon @Inject constructor(
compilerOptions.verbose.convention(logger.isDebugEnabled)
}
@Suppress("DEPRECATION")
@Deprecated(KOTLIN_OPTIONS_DEPRECATION_MESSAGE)
override val kotlinOptions: KotlinMultiplatformCommonOptions = KotlinMultiplatformCommonOptionsCompat(
{ this },
@@ -67,6 +67,7 @@ abstract class KotlinJsDce @Inject constructor(
@Internal
var kotlinFilesOnly: Boolean = false
@Suppress("DEPRECATION")
@Deprecated(KOTLIN_OPTIONS_AS_TOOLS_DEPRECATION_MESSAGE)
@get:Internal
override val dceOptions: KotlinJsDceOptions = object : KotlinJsDceOptions {