Deprecate 1.2.x MPP Gradle plugins

Issue #KT-31570 Fixed
This commit is contained in:
Sergey Igushkin
2020-01-14 20:57:39 +03:00
parent f9acc0ab88
commit ffa2f97d2c
3 changed files with 32 additions and 1 deletions
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.gradle package org.jetbrains.kotlin.gradle
import com.intellij.testFramework.TestDataPath 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.EXPECTED_BY_CONFIG_NAME
import org.jetbrains.kotlin.gradle.plugin.IMPLEMENT_CONFIG_NAME import org.jetbrains.kotlin.gradle.plugin.IMPLEMENT_CONFIG_NAME
import org.jetbrains.kotlin.gradle.plugin.IMPLEMENT_DEPRECATION_WARNING import org.jetbrains.kotlin.gradle.plugin.IMPLEMENT_DEPRECATION_WARNING
@@ -35,6 +36,9 @@ class MultiplatformGradleIT : BaseGradleIT() {
project.build("build") { project.build("build") {
assertSuccessful() assertSuccessful()
assertContains(KOTLIN_12X_MPP_DEPRECATION_WARNING)
assertTasksExecuted( assertTasksExecuted(
":lib:compileKotlinCommon", ":lib:compileKotlinCommon",
":lib:compileTestKotlinCommon", ":lib:compileTestKotlinCommon",
@@ -50,6 +54,13 @@ class MultiplatformGradleIT : BaseGradleIT() {
assertFileExists("libJs/build/classes/kotlin/main/libJs.js") assertFileExists("libJs/build/classes/kotlin/main/libJs.js")
assertFileExists("libJs/build/classes/kotlin/test/libJs_test.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 @Test
@@ -26,6 +26,7 @@ import org.gradle.api.tasks.SourceSet
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
import org.jetbrains.kotlin.gradle.logging.kotlinWarn import org.jetbrains.kotlin.gradle.logging.kotlinWarn
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild
abstract class KotlinPlatformPluginBase(protected val platformName: String) : Plugin<Project> { abstract class KotlinPlatformPluginBase(protected val platformName: String) : Plugin<Project> {
companion object { companion object {
@@ -38,6 +39,7 @@ abstract class KotlinPlatformPluginBase(protected val platformName: String) : Pl
open class KotlinPlatformCommonPlugin : KotlinPlatformPluginBase("common") { open class KotlinPlatformCommonPlugin : KotlinPlatformPluginBase("common") {
override fun apply(project: Project) { override fun apply(project: Project) {
warnAboutKotlin12xMppDeprecation(project)
project.applyPlugin<KotlinCommonPluginWrapper>() project.applyPlugin<KotlinCommonPluginWrapper>()
} }
} }
@@ -55,6 +57,8 @@ open class KotlinPlatformImplementationPluginBase(platformName: String) : Kotlin
listOf(project.configurations.getByName("compile")) listOf(project.configurations.getByName("compile"))
override fun apply(project: Project) { override fun apply(project: Project) {
warnAboutKotlin12xMppDeprecation(project)
val implementConfig = project.configurations.create(IMPLEMENT_CONFIG_NAME) val implementConfig = project.configurations.create(IMPLEMENT_CONFIG_NAME)
val expectedByConfig = project.configurations.create(EXPECTED_BY_CONFIG_NAME) val expectedByConfig = project.configurations.create(EXPECTED_BY_CONFIG_NAME)
@@ -245,3 +249,17 @@ open class KotlinPlatformJsPlugin : KotlinPlatformImplementationPluginBase("js")
super.apply(project) 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)
}
}
@@ -27,4 +27,6 @@ const val DISABLED_NATIVE_TARGETS_REPORTER_WARNING_PREFIX: String =
DisabledNativeTargetsReporter.WARNING_PREFIX DisabledNativeTargetsReporter.WARNING_PREFIX
const val NO_NATIVE_STDLIB_WARNING = NO_NATIVE_STDLIB_WARNING 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