From 413d02621bcc9347cd53e583eb76676c6ab333f3 Mon Sep 17 00:00:00 2001 From: Sergey Igushkin Date: Thu, 20 Aug 2020 13:58:39 +0400 Subject: [PATCH] Add a link to docs in MPP stability warning; add a flag that hides it --- .../kotlin/gradle/plugin/KotlinProperties.kt | 4 ++++ .../gradle/plugin/mpp/KotlinMultiplatformPlugin.kt | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinProperties.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinProperties.kt index 99a4ebc1ab6..809cc759ecf 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinProperties.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinProperties.kt @@ -9,6 +9,7 @@ import org.gradle.api.Project import org.jetbrains.kotlin.gradle.dsl.Coroutines import org.jetbrains.kotlin.gradle.dsl.NativeCacheKind import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType.Companion.jsCompilerProperty +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin import org.jetbrains.kotlin.gradle.targets.native.DisabledNativeTargetsReporter import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile import org.jetbrains.kotlin.gradle.tasks.CacheBuilder @@ -92,6 +93,9 @@ internal class PropertiesProvider private constructor(private val project: Proje val enableCompatibilityMetadataVariant: Boolean get() = booleanProperty("kotlin.mpp.enableCompatibilityMetadataVariant") ?: true + val mppStabilityNoWarn: Boolean? + get() = booleanProperty(KotlinMultiplatformPlugin.STABILITY_NOWARN_FLAG) + val ignoreDisabledNativeTargets: Boolean? get() = booleanProperty(DisabledNativeTargetsReporter.DISABLE_WARNING_PROPERTY_NAME) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt index d3a5315c513..f1a25312fb1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt @@ -66,7 +66,15 @@ class KotlinMultiplatformPlugin( checkGradleCompatibility("the Kotlin Multiplatform plugin", GradleVersion.version("6.0")) project.plugins.apply(JavaBasePlugin::class.java) - SingleWarningPerBuild.show(project, "Kotlin Multiplatform Projects are an Alpha feature.") + + if (PropertiesProvider(project).mppStabilityNoWarn != true) { + SingleWarningPerBuild.show( + project, + "Kotlin Multiplatform Projects are an Alpha feature. " + + "See: https://kotlinlang.org/docs/reference/evolution/components-stability.html. " + + "To hide this message, add '$STABILITY_NOWARN_FLAG=true' to the Gradle properties.\n" + ) + } val targetsContainer = project.container(KotlinTarget::class.java) val kotlinMultiplatformExtension = project.extensions.getByType(KotlinMultiplatformExtension::class.java) @@ -294,6 +302,8 @@ class KotlinMultiplatformPlugin( internal fun sourceSetFreeCompilerArgsPropertyName(sourceSetName: String) = "kotlin.mpp.freeCompilerArgsForSourceSet.$sourceSetName" + + internal const val STABILITY_NOWARN_FLAG = "kotlin.mpp.stability.nowarn" } }