[Gradle][KT-53342] MultiplatformLayoutV1PromoteV2Checker: Show only single warning per build
This commit is contained in:
committed by
Space
parent
9b8fbea0dc
commit
97ecf43b77
+4
-2
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.android.KotlinAndroidSourceSetLayout
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.android.multiplatformAndroidSourceSetLayoutV2
|
||||
import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild
|
||||
|
||||
/**
|
||||
* Promotes MultiplatformAndroidSourceSetLayoutV2 when requirements are met
|
||||
@@ -22,8 +23,9 @@ internal object MultiplatformLayoutV1PromoteV2Checker : KotlinAndroidSourceSetLa
|
||||
if (target.project.kotlinPropertiesProvider.ignoreMppAndroidSourceSetLayoutVersion) return
|
||||
runCatching {
|
||||
if (MultiplatformLayoutV2AgpRequirementChecker.isAgpRequirementMet()) {
|
||||
logger.warn(
|
||||
"""
|
||||
SingleWarningPerBuild.show(
|
||||
target.project, logger,
|
||||
"""
|
||||
w: ${layout.name} is deprecated. Use ${multiplatformAndroidSourceSetLayoutV2.name} instead.
|
||||
To enable ${multiplatformAndroidSourceSetLayoutV2.name}: put the following in your gradle.properties:
|
||||
${PropertyNames.KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION}=2
|
||||
|
||||
+6
-3
@@ -6,7 +6,8 @@
|
||||
package org.jetbrains.kotlin.gradle.utils
|
||||
|
||||
import org.gradle.api.Project
|
||||
import java.util.WeakHashMap
|
||||
import org.gradle.api.logging.Logger
|
||||
import java.util.*
|
||||
|
||||
internal abstract class SingleAction {
|
||||
private val performedActions = WeakHashMap<Project, MutableSet<String>>()
|
||||
@@ -32,8 +33,10 @@ internal object SingleActionPerProject : SingleAction() {
|
||||
internal object SingleWarningPerBuild {
|
||||
private const val ACTION_ID_SHOW_WARNING = "show-warning:"
|
||||
|
||||
fun show(project: Project, warningText: String) = SingleActionPerBuild.run(project, ACTION_ID_SHOW_WARNING + warningText) {
|
||||
project.logger.warn(warningText)
|
||||
fun show(project: Project, warningText: String) = show(project, project.logger, warningText)
|
||||
|
||||
fun show(project: Project, logger: Logger, warningText: String) = SingleActionPerBuild.run(project, ACTION_ID_SHOW_WARNING + warningText) {
|
||||
logger.warn(warningText)
|
||||
}
|
||||
|
||||
fun deprecation(project: Project, context: String, target: String, replacement: String?) {
|
||||
|
||||
Reference in New Issue
Block a user