Create checker for deprecated gradle properties

#KT-64380 Fixed
This commit is contained in:
nataliya.valtman
2024-02-23 21:07:02 +01:00
committed by Space Team
parent 65cfc578a8
commit a7f57710e2
3 changed files with 47 additions and 0 deletions
@@ -808,6 +808,16 @@ object KotlinToolingDiagnostics {
""".trimIndent()
)
}
object DeprecatedGradleProperties : ToolingDiagnosticFactory(WARNING) {
operator fun invoke(usedDeprecatedProperties: List<String>): ToolingDiagnostic {
return build(
"""
$usedDeprecatedProperties properties were deprecated and are not supported anymore. Please, delete them from project properties.
""".trimMargin()
)
}
}
}
private fun String.indentLines(nSpaces: Int = 4, skipFirstLine: Boolean = true): String {
@@ -0,0 +1,36 @@
/*
* Copyright 2010-2024 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.PropertiesBuildService
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
internal object GradleDeprecatedPropertyChecker : KotlinGradleProjectChecker {
private val deprecatedProperties: List<String> = listOf(
"kotlin.useK2",
"kotlin.experimental.tryK2",
"kapt.use.k2",
"kotlin.internal.single.build.metrics.file",
"kotlin.build.report.dir"
)
override suspend fun KotlinGradleProjectCheckerContext.runChecks(collector: KotlinToolingDiagnosticsCollector) {
val propertiesBuildService = PropertiesBuildService.registerIfAbsent(project).get()
val usedDeprecatedProperties = deprecatedProperties.filter { propertiesBuildService.get(it, project) != null }
if (usedDeprecatedProperties.isNotEmpty()) {
collector.reportOncePerGradleBuild(
project,
KotlinToolingDiagnostics.DeprecatedGradleProperties(usedDeprecatedProperties)
)
}
}
}
@@ -144,6 +144,7 @@ internal fun Project.registerKotlinPluginExtensions() {
register(project, DuplicateSourceSetChecker)
register(project, CInteropInputChecker)
register(project, IncorrectNativeDependenciesChecker)
register(project, GradleDeprecatedPropertyChecker)
if (isMultiplatform) {
register(project, KotlinMultiplatformAndroidGradlePluginCompatibilityChecker)