From 07142a408338291a19e3ed0b9804f22783da7164 Mon Sep 17 00:00:00 2001 From: Dmitry Savvinov Date: Wed, 15 Mar 2023 16:53:59 +0100 Subject: [PATCH] [mpp] Migrate checks of commonMain.dependsOn to the new infra --- .../diagnostics/KotlinToolingDiagnostics.kt | 4 +++ .../CommonMainWithDependsOnChecker.kt | 25 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/CommonMainWithDependsOnChecker.kt diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt index 7349b168617..775df3e1885 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt @@ -23,4 +23,8 @@ object KotlinToolingDiagnostics { "The following deprecated Kotlin/Native targets were used in the project: ${usedTargetIds.joinToString()}" ) } + + object CommonMainWithDependsOnDiagnostic : ToolingDiagnosticFactory(WARNING) { + operator fun invoke() = build("commonMain can't declare dependsOn on other source sets") + } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/CommonMainWithDependsOnChecker.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/CommonMainWithDependsOnChecker.kt new file mode 100644 index 00000000000..9b6fec2ceba --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/CommonMainWithDependsOnChecker.kt @@ -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.KotlinSourceSet +import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics +import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnosticsCollector +import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinGradleProjectChecker +import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinGradleProjectCheckerContext +import org.jetbrains.kotlin.gradle.plugin.sources.internal + +internal object CommonMainWithDependsOnChecker : KotlinGradleProjectChecker { + override fun KotlinGradleProjectCheckerContext.runChecks(collector: KotlinToolingDiagnosticsCollector) { + multiplatformExtension?.sourceSets?.all { + if (it.name == KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME) { + it.internal.dependsOn.forAll { + collector.reportOncePerGradleProject(project, KotlinToolingDiagnostics.CommonMainWithDependsOnDiagnostic()) + } + } + } + } +}