Add a link to docs in MPP stability warning; add a flag that hides it

This commit is contained in:
Sergey Igushkin
2020-08-20 13:58:39 +04:00
committed by Sergey Igushkin
parent 02e5f140f4
commit 413d02621b
2 changed files with 15 additions and 1 deletions
@@ -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)
@@ -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"
}
}