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