From d662f72d07a517d266f011ab10b710027cc0cf42 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Mon, 12 Feb 2024 16:43:12 +0100 Subject: [PATCH] [Gradle] Deprecate KotlinCompilation.compilerOptions Users quite often confuse that compilerOptions in KotlinCompilation is actually the same object in the Kotlin compilation task. We want to make our API more straightforward and remove this ambiguity by proposing to use task compiler options DSL. ^KT-65568 Verification Pending --- libraries/kotlin.test/build.gradle.kts | 12 ++++++------ .../kotlin/gradle/plugin/KotlinCompilation.kt | 4 ++++ .../android/PrototypeAndroidCompilation.kt | 4 ++++ .../gradle/plugin/KotlinCompilationInfo.kt | 2 +- ...nCompilationCompilerOptionsConfigurator.kt | 2 +- .../compilationImpl/KotlinCompilationImpl.kt | 4 ++++ ...CompilationLanguageSettingsConfigurator.kt | 1 + ...otlinCreateNativeCompileTasksSideEffect.kt | 1 + .../targets/android/AndroidProjectHandler.kt | 2 +- .../gradle/targets/js/KotlinJsCompilation.kt | 15 ++++++--------- .../targets/js/ir/KotlinJsIrSubTarget.kt | 1 + .../jvm/KotlinJvmAndroidCompilation.kt | 14 +++++--------- .../targets/jvm/KotlinJvmCompilation.kt | 14 +++++--------- .../jvm/KotlinJvmWithJavaTargetPreset.kt | 1 + .../targets/jvm/KotlinWithJavaCompilation.kt | 15 +++++---------- ...KotilnNativeConfigureBinariesSideEffect.kt | 2 +- .../targets/native/KotlinNativeCompilation.kt | 19 ++++++++++--------- .../configuration/KaptGenerateStubsConfig.kt | 2 +- .../BuildKotlinToolingMetadataTest.kt | 2 ++ .../unitTests/K2MultiplatformStructureTest.kt | 1 + .../KotlinCompileArgumentsTest.kt | 2 ++ .../KotlinNativeCompilationModuleNameTest.kt | 4 +++- .../KotlinNativeCompileArgumentsTest.kt | 1 + .../gradle/util/externalTargetApiUtils.kt | 4 ++++ 24 files changed, 71 insertions(+), 58 deletions(-) diff --git a/libraries/kotlin.test/build.gradle.kts b/libraries/kotlin.test/build.gradle.kts index 2522ca55374..33d69542827 100644 --- a/libraries/kotlin.test/build.gradle.kts +++ b/libraries/kotlin.test/build.gradle.kts @@ -92,22 +92,22 @@ kotlin { browser {} } nodejs {} - compilations["main"].compilerOptions.configure { - freeCompilerArgs.add("-Xir-module-name=kotlin-test") + compilations["main"].compileTaskProvider.configure { + compilerOptions.freeCompilerArgs.add("-Xir-module-name=kotlin-test") } } @OptIn(ExperimentalWasmDsl::class) wasmJs { nodejs() - compilations["main"].compilerOptions.configure { - freeCompilerArgs.add("-Xir-module-name=kotlin-test") + compilations["main"].compileTaskProvider.configure { + compilerOptions.freeCompilerArgs.add("-Xir-module-name=kotlin-test") } } @OptIn(ExperimentalWasmDsl::class) wasmWasi { nodejs() - compilations["main"].compilerOptions.configure { - freeCompilerArgs.add("-Xir-module-name=kotlin-test") + compilations["main"].compileTaskProvider.configure { + compilerOptions.freeCompilerArgs.add("-Xir-module-name=kotlin-test") } } diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilation.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilation.kt index 8a8cde6b45f..0c2e8080f9a 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilation.kt @@ -59,6 +59,10 @@ interface KotlinCompilation : Named, val compileKotlinTaskName: String + @Deprecated( + "To configure compilation compiler options use 'compileTaskProvider':\ncompilation.compileTaskProvider.configure{\n" + + " compilerOptions {}\n}" + ) @Suppress("DEPRECATION") val compilerOptions: HasCompilerOptions<*> diff --git a/libraries/tools/kotlin-gradle-plugin-tcs-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/PrototypeAndroidCompilation.kt b/libraries/tools/kotlin-gradle-plugin-tcs-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/PrototypeAndroidCompilation.kt index fabeeda067e..eedd565f313 100644 --- a/libraries/tools/kotlin-gradle-plugin-tcs-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/PrototypeAndroidCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin-tcs-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/PrototypeAndroidCompilation.kt @@ -17,6 +17,10 @@ class PrototypeAndroidCompilation(delegate: Delegate) : DecoratedExternalKotlinC override val kotlinOptions: KotlinCommonOptions get() = super.kotlinOptions as KotlinJvmOptions + @Deprecated( + "To configure compilation compiler options use 'compileTaskProvider':\ncompilation.compileTaskProvider.configure{\n" + + " compilerOptions {}\n}" + ) @Suppress("UNCHECKED_CAST") override val compilerOptions: HasCompilerOptions get() = super.compilerOptions as HasCompilerOptions diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilationInfo.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilationInfo.kt index 8db2380aed5..79c78610d62 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilationInfo.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilationInfo.kt @@ -57,7 +57,7 @@ internal sealed class KotlinCompilationInfo { override val moduleName: String get() = origin.moduleNameForCompilation().get() - @Suppress("TYPEALIAS_EXPANSION_DEPRECATION") + @Suppress("TYPEALIAS_EXPANSION_DEPRECATION", "DEPRECATION") override val compilerOptions: DeprecatedHasCompilerOptions<*> get() = origin.compilerOptions diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationCompilerOptionsConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationCompilerOptionsConfigurator.kt index 1b0673ceb85..4c56f998006 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationCompilerOptionsConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationCompilerOptionsConfigurator.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.moduleNameForCompilation internal object KotlinCompilationCompilerOptionsFromTargetConfigurator : KotlinCompilationImplFactory.PostConfigure { override fun configure(compilation: DecoratedKotlinCompilation<*>) { - when (val compilationCompilerOptions = compilation.compilerOptions.options) { + when (@Suppress("DEPRECATION") val compilationCompilerOptions = compilation.compilerOptions.options) { is KotlinJvmCompilerOptions -> compilation.configureJvmCompilerOptions(compilationCompilerOptions) is KotlinJsCompilerOptions -> compilation.configureJsCompilerOptions(compilationCompilerOptions) is KotlinNativeCompilerOptions -> { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationImpl.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationImpl.kt index 67b33f43882..401cb82390f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationImpl.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationImpl.kt @@ -172,6 +172,10 @@ internal class KotlinCompilationImpl constructor( override val kotlinOptions: KotlinCommonOptions get() = params.kotlinOptions + @Deprecated( + "To configure compilation compiler options use 'compileTaskProvider':\ncompilation.compileTaskProvider.configure{\n" + + " compilerOptions {}\n}" + ) @Suppress("TYPEALIAS_EXPANSION_DEPRECATION") override val compilerOptions: DeprecatedHasCompilerOptions<*> get() = params.compilerOptions diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationLanguageSettingsConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationLanguageSettingsConfigurator.kt index c07af9241e0..14ea5c9fda3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationLanguageSettingsConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationLanguageSettingsConfigurator.kt @@ -35,6 +35,7 @@ internal object KotlinCompilationLanguageSettingsConfigurator : KotlinCompilatio return } + @Suppress("DEPRECATION") languageSettingsBuilder .compilationCompilerOptions .complete(compilation.compilerOptions.options) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCreateNativeCompileTasksSideEffect.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCreateNativeCompileTasksSideEffect.kt index e8d6388e343..a7f455b0c25 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCreateNativeCompileTasksSideEffect.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCreateNativeCompileTasksSideEffect.kt @@ -33,6 +33,7 @@ internal val KotlinCreateNativeCompileTasksSideEffect = KotlinCompilationSideEff val kotlinNativeCompile = project.registerTask( compilation.compileKotlinTaskName, + @Suppress("DEPRECATION") listOf(compilationInfo, compilation.compilerOptions.options) ) { task -> task.group = BasePlugin.BUILD_GROUP diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/AndroidProjectHandler.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/AndroidProjectHandler.kt index 1c615159fa8..4b433e947c9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/AndroidProjectHandler.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/AndroidProjectHandler.kt @@ -188,7 +188,7 @@ internal class AndroidProjectHandler( task.destinationDirectory.set(project.layout.buildDirectory.dir("tmp/kotlin-classes/$variantDataName")) task.description = "Compiles the $variantDataName kotlin." } - val kotlinTask = tasksProvider.registerKotlinJVMTask( + @Suppress("DEPRECATION") val kotlinTask = tasksProvider.registerKotlinJVMTask( project, compilation.compileKotlinTaskName, compilation.compilerOptions.options, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt index 67a7fc646ba..eace0ba3919 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt @@ -31,18 +31,14 @@ open class KotlinJsCompilation @Inject internal constructor( ) : DeprecatedAbstractKotlinCompilationToRunnableFiles(compilation), HasBinaries { - @Suppress("UNCHECKED_CAST") + @Deprecated( + "To configure compilation compiler options use 'compileTaskProvider':\ncompilation.compileTaskProvider.configure{\n" + + " compilerOptions {}\n}" + ) + @Suppress("UNCHECKED_CAST", "DEPRECATION") final override val compilerOptions: DeprecatedHasCompilerOptions get() = compilation.compilerOptions as DeprecatedHasCompilerOptions - internal fun compilerOptions(configure: KotlinJsCompilerOptions.() -> Unit) { - compilerOptions.configure(configure) - } - - internal fun compilerOptions(configure: Action) { - configure.execute(compilerOptions.options) - } - override val binaries: KotlinJsBinaryContainer = compilation.target.project.objects.newInstance( KotlinJsBinaryContainer::class.java, @@ -107,6 +103,7 @@ open class KotlinJsCompilation @Inject internal constructor( val KotlinJsCompilation.fileExtension: Provider get() { val isWasm = platformType == KotlinPlatformType.wasm + @Suppress("DEPRECATION") return compilerOptions.options.moduleKind.map { moduleKind -> if (isWasm || moduleKind == JsModuleKind.MODULE_ES) { "mjs" diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt index 6142d6edd5f..b08a61e6942 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt @@ -57,6 +57,7 @@ abstract class KotlinJsIrSubTarget( internal fun configure() { target.compilations.all { val npmProject = it.npmProject + @Suppress("DEPRECATION") it.compilerOptions.options.freeCompilerArgs.add("$PER_MODULE_OUTPUT_NAME=${npmProject.name}") } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt index 13fd656e9f8..3d4eddb3597 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt @@ -6,7 +6,6 @@ @file:Suppress("PackageDirectoryMismatch") // Old package for compatibility package org.jetbrains.kotlin.gradle.plugin.mpp -import org.gradle.api.Action import org.gradle.api.file.FileCollection import org.gradle.api.provider.Property import org.gradle.api.tasks.TaskProvider @@ -27,17 +26,14 @@ open class KotlinJvmAndroidCompilation @Inject internal constructor( override val target: KotlinAndroidTarget = compilation.target as KotlinAndroidTarget + @Suppress("DEPRECATION") + @Deprecated( + "To configure compilation compiler options use 'compileTaskProvider':\ncompilation.compileTaskProvider.configure{\n" + + " compilerOptions {}\n}" + ) override val compilerOptions: DeprecatedHasCompilerOptions = compilation.compilerOptions.castCompilerOptionsType() - internal fun compilerOptions(configure: KotlinJvmCompilerOptions.() -> Unit) { - compilerOptions.configure(configure) - } - - internal fun compilerOptions(configure: Action) { - configure.execute(compilerOptions.options) - } - internal val testedVariantArtifacts: Property = compilation.project.objects.property(FileCollection::class.java) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt index 3062f1b0e7c..a8c5f60ed75 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt @@ -6,7 +6,6 @@ @file:Suppress("PackageDirectoryMismatch") // Old package for compatibility package org.jetbrains.kotlin.gradle.plugin.mpp -import org.gradle.api.Action import org.gradle.api.provider.Provider import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.TaskProvider @@ -33,17 +32,14 @@ open class KotlinJvmCompilation @Inject internal constructor( final override val target: KotlinJvmTarget = compilation.target as KotlinJvmTarget + @Suppress("DEPRECATION") + @Deprecated( + "To configure compilation compiler options use 'compileTaskProvider':\ncompilation.compileTaskProvider.configure{\n" + + " compilerOptions {}\n}" + ) override val compilerOptions: DeprecatedHasCompilerOptions = compilation.compilerOptions.castCompilerOptionsType() - internal fun compilerOptions(configure: KotlinJvmCompilerOptions.() -> Unit) { - compilerOptions.configure(configure) - } - - internal fun compilerOptions(configure: Action) { - configure.execute(compilerOptions.options) - } - @Deprecated("Replaced with compileTaskProvider", replaceWith = ReplaceWith("compileTaskProvider")) @Suppress("UNCHECKED_CAST", "DEPRECATION") override val compileKotlinTaskProvider: TaskProvider diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmWithJavaTargetPreset.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmWithJavaTargetPreset.kt index aa534616b6b..4eebcb1c9c4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmWithJavaTargetPreset.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmWithJavaTargetPreset.kt @@ -62,6 +62,7 @@ class KotlinJvmWithJavaTargetPreset( } target.compilations.configureEach { + @Suppress("DEPRECATION") it.compilerOptions.options.moduleName.convention( it.moduleNameForCompilation() ) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt index 6681f58555d..bf9bb28b11a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt @@ -6,7 +6,6 @@ @file:Suppress("PackageDirectoryMismatch", "UNCHECKED_CAST") // Old package for compatibility package org.jetbrains.kotlin.gradle.plugin.mpp -import org.gradle.api.Action import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.compile.JavaCompile @@ -25,18 +24,14 @@ open class KotlinWithJavaCompilation(compilation), DeprecatedKotlinCompilationWithResources { - @Suppress("UNCHECKED_CAST") + @Deprecated( + "To configure compilation compiler options use 'compileTaskProvider':\ncompilation.compileTaskProvider.configure{\n" + + " compilerOptions {}\n}" + ) + @Suppress("UNCHECKED_CAST", "DEPRECATION") override val compilerOptions: DeprecatedHasCompilerOptions = compilation.compilerOptions as DeprecatedHasCompilerOptions - internal fun compilerOptions(configure: CO.() -> Unit) { - compilerOptions.configure(configure) - } - - internal fun compilerOptions(configure: Action) { - configure.execute(compilerOptions.options) - } - val compileJavaTaskProvider: TaskProvider get() = target.project.tasks.withType(JavaCompile::class.java).named(javaSourceSet.compileJavaTaskName) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotilnNativeConfigureBinariesSideEffect.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotilnNativeConfigureBinariesSideEffect.kt index 7cc8dc4bce6..96c7b63ada7 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotilnNativeConfigureBinariesSideEffect.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotilnNativeConfigureBinariesSideEffect.kt @@ -75,7 +75,7 @@ private fun Project.createLinkTask(binary: NativeBinary) { // workaround for too late compilation compilerOptions creation // which leads to not able run project.afterEvaluate because of wrong context // this afterEvaluate comes from NativeCompilerOptions - val compilationCompilerOptions = binary.compilation.compilerOptions + @Suppress("DEPRECATION") val compilationCompilerOptions = binary.compilation.compilerOptions val konanPropertiesBuildService = KonanPropertiesBuildService.registerIfAbsent(project) val xcodeVersionTask = XcodeVersionTask.locateOrRegister(project) val linkTask = registerTask( diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt index b152e32fdef..523ab4547a2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt @@ -40,18 +40,14 @@ abstract class AbstractKotlinNativeCompilation internal constructor( override val compileTaskProvider: TaskProvider get() = compilation.compileTaskProvider as TaskProvider - @Suppress("UNCHECKED_CAST") + @Deprecated( + "To configure compilation compiler options use 'compileTaskProvider':\ncompilation.compileTaskProvider.configure{\n" + + " compilerOptions {}\n}" + ) + @Suppress("UNCHECKED_CAST", "DEPRECATION") override val compilerOptions: DeprecatedHasCompilerOptions get() = compilation.compilerOptions as DeprecatedHasCompilerOptions - internal fun compilerOptions(configure: KotlinNativeCompilerOptions.() -> Unit) { - compilerOptions.configure(configure) - } - - internal fun compilerOptions(configure: Action) { - configure.execute(compilerOptions.options) - } - internal val useGenericPluginArtifact: Boolean get() = project.nativeUseEmbeddableCompilerJar } @@ -63,6 +59,11 @@ open class KotlinNativeCompilation @Inject internal constructor( final override val target: KotlinNativeTarget get() = compilation.target as KotlinNativeTarget + @Suppress("DEPRECATION") + @Deprecated( + "To configure compilation compiler options use 'compileTaskProvider':\ncompilation.compileTaskProvider.configure{\n" + + " compilerOptions {}\n}" + ) override val compilerOptions: NativeCompilerOptions get() = super.compilerOptions as NativeCompilerOptions diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptGenerateStubsConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptGenerateStubsConfig.kt index 3571ec8e92c..ca9a736c1f3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptGenerateStubsConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptGenerateStubsConfig.kt @@ -34,7 +34,7 @@ internal class KaptGenerateStubsConfig : BaseKotlinCompileConfig // Syncing compiler options from related KotlinJvmCompile task - val jvmCompilerOptions = compilation.compilerOptions.options as KotlinJvmCompilerOptions + @Suppress("DEPRECATION") val jvmCompilerOptions = compilation.compilerOptions.options as KotlinJvmCompilerOptions KotlinJvmCompilerOptionsHelper.syncOptionsAsConvention( from = jvmCompilerOptions, into = kaptGenerateStubsTask.compilerOptions diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/BuildKotlinToolingMetadataTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/BuildKotlinToolingMetadataTest.kt index 5eda80949cd..c9ea605d259 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/BuildKotlinToolingMetadataTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/BuildKotlinToolingMetadataTest.kt @@ -142,7 +142,9 @@ class BuildKotlinToolingMetadataTest { project.plugins.apply("kotlin-multiplatform") val kotlin = multiplatformExtension val jvm = kotlin.jvm() + @Suppress("DEPRECATION") jvm.compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME).compilerOptions.options.jvmTarget.set(JvmTarget.JVM_12) + @Suppress("DEPRECATION") jvm.compilations.getByName(KotlinCompilation.TEST_COMPILATION_NAME).compilerOptions.options.jvmTarget.set(JvmTarget.JVM_10) assertEquals( diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/K2MultiplatformStructureTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/K2MultiplatformStructureTest.kt index c4b800725d9..2f383453aef 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/K2MultiplatformStructureTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/K2MultiplatformStructureTest.kt @@ -105,6 +105,7 @@ class K2MultiplatformStructureTest { /* Enable K2 if necessary */ if (KotlinVersion.DEFAULT < KotlinVersion.KOTLIN_2_0) { + @Suppress("Deprecation") compilation.compilerOptions.options.languageVersion.set(KotlinVersion.KOTLIN_2_0) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinCompileArgumentsTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinCompileArgumentsTest.kt index 790e15b9eb8..736b915a118 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinCompileArgumentsTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinCompileArgumentsTest.kt @@ -97,6 +97,7 @@ class KotlinCompileArgumentsTest { kotlin.jvm() val jvmMainCompilation = kotlin.jvm().compilations.getByName("main") + @Suppress("DEPRECATION") jvmMainCompilation.compilerOptions.options.languageVersion.set(KotlinVersion.KOTLIN_2_0) project.evaluate() @@ -116,6 +117,7 @@ class KotlinCompileArgumentsTest { val kotlin = project.multiplatformExtension kotlin.jvm() val compilation = kotlin.jvm().compilations.main + @Suppress("DEPRECATION") compilation.compilerOptions.options.languageVersion.set(KotlinVersion.KOTLIN_2_0) val compileTask = compilation.compileTaskProvider.get() as KotlinCompile diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinNativeCompilationModuleNameTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinNativeCompilationModuleNameTest.kt index 5c57fb7257c..cbb4a12c9ab 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinNativeCompilationModuleNameTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinNativeCompilationModuleNameTest.kt @@ -25,6 +25,7 @@ class KotlinNativeCompilationModuleNameTest { project.evaluate() + @Suppress("DEPRECATION") assertEquals( PROJECT_NAME, linuxX64Target.compilations.main.compilerOptions.options.moduleName.get(), @@ -43,6 +44,7 @@ class KotlinNativeCompilationModuleNameTest { project.evaluate() + @Suppress("DEPRECATION") assertEquals( "${PROJECT_NAME}_test", linuxX64Target.compilations.test.compilerOptions.options.moduleName.get(), @@ -66,7 +68,7 @@ class KotlinNativeCompilationModuleNameTest { project.evaluate() - val compilerOptions = project + @Suppress("DEPRECATION") val compilerOptions = project .multiplatformExtension .metadata() .compilations diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinNativeCompileArgumentsTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinNativeCompileArgumentsTest.kt index 30e1eedb863..2f39eafba26 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinNativeCompileArgumentsTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinNativeCompileArgumentsTest.kt @@ -92,6 +92,7 @@ class KotlinNativeCompileArgumentsTest { val kotlin = project.multiplatformExtension val linuxX64Target = kotlin.linuxX64() linuxX64Target.compilations.all { + @Suppress("DEPRECATION") it.compilerOptions.options.apply { optIn.add("my.OptIn") optIn.add("my.other.OptIn") diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/util/externalTargetApiUtils.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/util/externalTargetApiUtils.kt index 93df387a9f0..b07e71163f8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/util/externalTargetApiUtils.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/util/externalTargetApiUtils.kt @@ -14,6 +14,10 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.external.ExternalKotlinCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.external.ExternalKotlinTargetDescriptor.TargetFactory class FakeCompilation(delegate: Delegate) : DecoratedExternalKotlinCompilation(delegate) { + @Deprecated( + "To configure compilation compiler options use 'compileTaskProvider':\ncompilation.compileTaskProvider.configure{\n" + + " compilerOptions {}\n}" + ) @Suppress("UNCHECKED_CAST", "DEPRECATION") override val compilerOptions: HasCompilerOptions get() = super.compilerOptions as HasCompilerOptions