[mpp] Migrate checks of deprecated K/N targets to new infra

This commit is contained in:
Dmitry Savvinov
2023-03-15 16:53:19 +01:00
committed by Space Team
parent a539db932c
commit 7a5f1d694f
2 changed files with 31 additions and 0 deletions
@@ -17,4 +17,10 @@ object KotlinToolingDiagnostics {
"Read the details here: https://kotlinlang.org/docs/multiplatform-compatibility-guide.html#deprecate-hmpp-properties",
)
}
object DeprecatedKotlinNativeTargetsDiagnostic : ToolingDiagnosticFactory(WARNING) {
operator fun invoke(usedTargetIds: List<String>) = build(
"The following deprecated Kotlin/Native targets were used in the project: ${usedTargetIds.joinToString()}"
)
}
}
@@ -0,0 +1,25 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinGradleProjectChecker
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinGradleProjectCheckerContext
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnosticsCollector
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
import org.jetbrains.kotlin.konan.target.KonanTarget
internal object DeprecatedKotlinNativeTargetsChecker : KotlinGradleProjectChecker {
override fun KotlinGradleProjectCheckerContext.runChecks(collector: KotlinToolingDiagnosticsCollector) {
val targets = multiplatformExtension?.targets ?: return
val usedDeprecatedTargets = targets
.filter { it is KotlinNativeTarget && it.konanTarget in KonanTarget.deprecatedTargets }
.map { it.name }
if (usedDeprecatedTargets.isEmpty()) return
collector.report(project, KotlinToolingDiagnostics.DeprecatedKotlinNativeTargetsDiagnostic(usedDeprecatedTargets))
}
}