diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt index 0a76d1d4e7e..6cc1156c6b2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationWithResources import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile +import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import java.util.concurrent.Callable @@ -52,9 +53,30 @@ class KotlinNativeCompilation( } // Native-specific DSL. - var extraOpts = mutableListOf() + private fun showDeprecationWarning() = SingleWarningPerBuild.show( + project, + "The compilation.extraOpts method used in this build is deprecated. Use compilation.kotlinOptions.freeCompilerArgs instead." + ) + internal var extraOptsNoWarn: MutableList = mutableListOf() + + @Deprecated("Use kotlinOptions.freeCompilerArgs instead", ReplaceWith("kotlinOptions.freeCompilerArgs")) + var extraOpts: MutableList + get() { + showDeprecationWarning() + return extraOptsNoWarn + } + set(value) { + showDeprecationWarning() + extraOptsNoWarn = value + } + + @Deprecated("Use kotlinOptions.freeCompilerArgs instead", ReplaceWith("kotlinOptions.freeCompilerArgs")) + @Suppress("Deprecation") fun extraOpts(vararg values: Any) = extraOpts(values.toList()) + + @Deprecated("Use kotlinOptions.freeCompilerArgs instead", ReplaceWith("kotlinOptions.freeCompilerArgs")) + @Suppress("Deprecation") fun extraOpts(values: List) { extraOpts.addAll(values.map { it.toString() }) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt index 8eec2fd4e97..9ef177c1b91 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt @@ -131,9 +131,8 @@ abstract class AbstractKotlinNativeCompile : AbstractCompile(), KotlinCompile - @Input get() = compilation.extraOpts + @Input get() = kotlinOptions.freeCompilerArgs // region Language settings imported from a SourceSet. val languageSettings: LanguageSettingsBuilder? @@ -169,12 +168,12 @@ abstract class AbstractKotlinNativeCompile : AbstractCompile(), KotlinCompile - get() = compilation.extraOpts + get() = compilation.extraOptsNoWarn set(value) { - compilation.extraOpts = value.toMutableList() + compilation.extraOptsNoWarn = value.toMutableList() } }