Deprecate 1.2.x MPP Gradle plugins
Issue #KT-31570 Fixed
This commit is contained in:
+11
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.kotlin.gradle
|
||||
|
||||
import com.intellij.testFramework.TestDataPath
|
||||
import org.jetbrains.kotlin.gradle.internals.KOTLIN_12X_MPP_DEPRECATION_WARNING
|
||||
import org.jetbrains.kotlin.gradle.plugin.EXPECTED_BY_CONFIG_NAME
|
||||
import org.jetbrains.kotlin.gradle.plugin.IMPLEMENT_CONFIG_NAME
|
||||
import org.jetbrains.kotlin.gradle.plugin.IMPLEMENT_DEPRECATION_WARNING
|
||||
@@ -35,6 +36,9 @@ class MultiplatformGradleIT : BaseGradleIT() {
|
||||
|
||||
project.build("build") {
|
||||
assertSuccessful()
|
||||
|
||||
assertContains(KOTLIN_12X_MPP_DEPRECATION_WARNING)
|
||||
|
||||
assertTasksExecuted(
|
||||
":lib:compileKotlinCommon",
|
||||
":lib:compileTestKotlinCommon",
|
||||
@@ -50,6 +54,13 @@ class MultiplatformGradleIT : BaseGradleIT() {
|
||||
assertFileExists("libJs/build/classes/kotlin/main/libJs.js")
|
||||
assertFileExists("libJs/build/classes/kotlin/test/libJs_test.js")
|
||||
}
|
||||
|
||||
project.projectDir.resolve("gradle.properties").appendText("\nkotlin.internal.mpp12x.deprecation.suppress=true")
|
||||
project.build {
|
||||
assertSuccessful()
|
||||
|
||||
assertNotContains(KOTLIN_12X_MPP_DEPRECATION_WARNING)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
+18
@@ -26,6 +26,7 @@ import org.gradle.api.tasks.SourceSet
|
||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||
import org.jetbrains.kotlin.gradle.logging.kotlinWarn
|
||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
||||
import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild
|
||||
|
||||
abstract class KotlinPlatformPluginBase(protected val platformName: String) : Plugin<Project> {
|
||||
companion object {
|
||||
@@ -38,6 +39,7 @@ abstract class KotlinPlatformPluginBase(protected val platformName: String) : Pl
|
||||
|
||||
open class KotlinPlatformCommonPlugin : KotlinPlatformPluginBase("common") {
|
||||
override fun apply(project: Project) {
|
||||
warnAboutKotlin12xMppDeprecation(project)
|
||||
project.applyPlugin<KotlinCommonPluginWrapper>()
|
||||
}
|
||||
}
|
||||
@@ -55,6 +57,8 @@ open class KotlinPlatformImplementationPluginBase(platformName: String) : Kotlin
|
||||
listOf(project.configurations.getByName("compile"))
|
||||
|
||||
override fun apply(project: Project) {
|
||||
warnAboutKotlin12xMppDeprecation(project)
|
||||
|
||||
val implementConfig = project.configurations.create(IMPLEMENT_CONFIG_NAME)
|
||||
val expectedByConfig = project.configurations.create(EXPECTED_BY_CONFIG_NAME)
|
||||
|
||||
@@ -245,3 +249,17 @@ open class KotlinPlatformJsPlugin : KotlinPlatformImplementationPluginBase("js")
|
||||
super.apply(project)
|
||||
}
|
||||
}
|
||||
|
||||
internal val KOTLIN_12X_MPP_DEPRECATION_WARNING = "\n" + """
|
||||
The 'org.jetbrains.kotlin.platform.*' plugins are deprecated and will no longer be available in Kotlin 1.4.
|
||||
Please migrate the project to the 'org.jetbrains.kotlin.multiplatform' plugin.
|
||||
See: https://kotlinlang.org/docs/reference/building-mpp-with-gradle.html
|
||||
""".trimIndent()
|
||||
|
||||
private const val KOTLIN_12X_MPP_DEPRECATION_SUPPRESS_FLAG = "kotlin.internal.mpp12x.deprecation.suppress"
|
||||
|
||||
private fun warnAboutKotlin12xMppDeprecation(project: Project) {
|
||||
if (project.findProperty(KOTLIN_12X_MPP_DEPRECATION_SUPPRESS_FLAG) != "true") {
|
||||
SingleWarningPerBuild.show(project, KOTLIN_12X_MPP_DEPRECATION_WARNING)
|
||||
}
|
||||
}
|
||||
+3
-1
@@ -27,4 +27,6 @@ const val DISABLED_NATIVE_TARGETS_REPORTER_WARNING_PREFIX: String =
|
||||
DisabledNativeTargetsReporter.WARNING_PREFIX
|
||||
|
||||
const val NO_NATIVE_STDLIB_WARNING = NO_NATIVE_STDLIB_WARNING
|
||||
const val NO_NATIVE_STDLIB_PROPERTY_WARNING = NO_NATIVE_STDLIB_PROPERTY_WARNING
|
||||
const val NO_NATIVE_STDLIB_PROPERTY_WARNING = NO_NATIVE_STDLIB_PROPERTY_WARNING
|
||||
|
||||
val KOTLIN_12X_MPP_DEPRECATION_WARNING = org.jetbrains.kotlin.gradle.plugin.KOTLIN_12X_MPP_DEPRECATION_WARNING
|
||||
Reference in New Issue
Block a user