diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/CompilationDetails.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/CompilationDetails.kt index 6fb128e1714..c588ea78ffa 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/CompilationDetails.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/CompilationDetails.kt @@ -58,48 +58,6 @@ interface CompilationDetailsWithRuntime : CompilationDe internal val CompilationDetails<*>.associateCompilationsClosure: Iterable> get() = closure { it.associateCompilations } -internal open class VariantMappedCompilationDetails( - open val variant: GradleKpmVariantInternal, - override val target: KotlinTarget, - defaultSourceSet: FragmentMappedKotlinSourceSet, -) : AbstractCompilationDetails(defaultSourceSet) { - - @Suppress("UNCHECKED_CAST") - override val compilationData: KotlinCompilationData - get() = variant.compilationData as KotlinCompilationData - - override fun whenSourceSetAdded(sourceSet: KotlinSourceSet) { - compilation.defaultSourceSet.dependsOn(sourceSet) - } - - override fun associateWith(other: CompilationDetails<*>) { - if (other !is VariantMappedCompilationDetails<*>) - error("a mapped variant can't be associated with a legacy one") - val otherModule = other.variant.containingModule - if (otherModule === variant.containingModule) - error("cannot associate $compilation with ${other.compilation} as they are mapped to the same $otherModule") - variant.containingModule.dependencies { implementation(otherModule) } - } - - override val associateCompilations: Set> get() = emptySet() - - override val compileDependencyFilesHolder: GradleKpmDependencyFilesHolder - get() = GradleKpmDependencyFilesHolder.ofVariantCompileDependencies(variant) - - override val kotlinDependenciesHolder: HasKotlinDependencies - get() = variant - -} - -internal open class VariantMappedCompilationDetailsWithRuntime( - override val variant: GradleKpmVariantWithRuntimeInternal, - target: KotlinTarget, - defaultSourceSet: FragmentMappedKotlinSourceSet -) : VariantMappedCompilationDetails(variant, target, defaultSourceSet), - CompilationDetailsWithRuntime { - override val runtimeDependencyFilesHolder: GradleKpmDependencyFilesHolder - get() = GradleKpmDependencyFilesHolder.ofVariantRuntimeDependencies(variant) -} internal class WithJavaCompilationDetails( target: KotlinTarget, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/GradleKpmAwareTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/GradleKpmAwareTargetConfigurator.kt index 773646ca8ca..a276f2353c0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/GradleKpmAwareTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/GradleKpmAwareTargetConfigurator.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20 import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.mpp.AbstractKotlinCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.AbstractKotlinTarget -import org.jetbrains.kotlin.gradle.plugin.mpp.VariantMappedCompilationDetails import java.util.concurrent.Callable internal open class GradleKpmAwareTargetConfigurator( diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/VariantMappedCompilationDetails.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/VariantMappedCompilationDetails.kt new file mode 100644 index 00000000000..b5c97cd9699 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/VariantMappedCompilationDetails.kt @@ -0,0 +1,61 @@ +/* + * Copyright 2010-2022 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.mpp.pm20 + +import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions +import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies +import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet +import org.jetbrains.kotlin.gradle.plugin.KotlinTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.AbstractCompilationDetails +import org.jetbrains.kotlin.gradle.plugin.mpp.CompilationDetails +import org.jetbrains.kotlin.gradle.plugin.mpp.CompilationDetailsWithRuntime +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.GradleKpmDependencyFilesHolder +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.ofVariantCompileDependencies +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.ofVariantRuntimeDependencies +import org.jetbrains.kotlin.gradle.plugin.sources.kpm.FragmentMappedKotlinSourceSet + +internal open class VariantMappedCompilationDetails( + open val variant: GradleKpmVariantInternal, + override val target: KotlinTarget, + defaultSourceSet: FragmentMappedKotlinSourceSet, +) : AbstractCompilationDetails(defaultSourceSet) { + + @Suppress("UNCHECKED_CAST") + override val compilationData: KotlinCompilationData + get() = variant.compilationData as KotlinCompilationData + + override fun whenSourceSetAdded(sourceSet: KotlinSourceSet) { + compilation.defaultSourceSet.dependsOn(sourceSet) + } + + override fun associateWith(other: CompilationDetails<*>) { + if (other !is VariantMappedCompilationDetails<*>) + error("a mapped variant can't be associated with a legacy one") + val otherModule = other.variant.containingModule + if (otherModule === variant.containingModule) + error("cannot associate $compilation with ${other.compilation} as they are mapped to the same $otherModule") + variant.containingModule.dependencies { implementation(otherModule) } + } + + override val associateCompilations: Set> get() = emptySet() + + override val compileDependencyFilesHolder: GradleKpmDependencyFilesHolder + get() = GradleKpmDependencyFilesHolder.ofVariantCompileDependencies(variant) + + override val kotlinDependenciesHolder: HasKotlinDependencies + get() = variant + +} + +internal open class VariantMappedCompilationDetailsWithRuntime( + override val variant: GradleKpmVariantWithRuntimeInternal, + target: KotlinTarget, + defaultSourceSet: FragmentMappedKotlinSourceSet +) : VariantMappedCompilationDetails(variant, target, defaultSourceSet), + CompilationDetailsWithRuntime { + override val runtimeDependencyFilesHolder: GradleKpmDependencyFilesHolder + get() = GradleKpmDependencyFilesHolder.ofVariantRuntimeDependencies(variant) +}