[Gradle][Minor] Move VariantMappedCompilationDetails into separate source file

KT-54312
This commit is contained in:
Sebastian Sellmair
2022-09-27 14:58:58 +02:00
committed by Space Team
parent b7c7ce3bf5
commit 47fc524b84
3 changed files with 61 additions and 43 deletions
@@ -58,48 +58,6 @@ interface CompilationDetailsWithRuntime<T : KotlinCommonOptions> : CompilationDe
internal val CompilationDetails<*>.associateCompilationsClosure: Iterable<CompilationDetails<*>>
get() = closure { it.associateCompilations }
internal open class VariantMappedCompilationDetails<T : KotlinCommonOptions>(
open val variant: GradleKpmVariantInternal,
override val target: KotlinTarget,
defaultSourceSet: FragmentMappedKotlinSourceSet,
) : AbstractCompilationDetails<T>(defaultSourceSet) {
@Suppress("UNCHECKED_CAST")
override val compilationData: KotlinCompilationData<T>
get() = variant.compilationData as KotlinCompilationData<T>
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<CompilationDetails<*>> get() = emptySet()
override val compileDependencyFilesHolder: GradleKpmDependencyFilesHolder
get() = GradleKpmDependencyFilesHolder.ofVariantCompileDependencies(variant)
override val kotlinDependenciesHolder: HasKotlinDependencies
get() = variant
}
internal open class VariantMappedCompilationDetailsWithRuntime<T : KotlinCommonOptions>(
override val variant: GradleKpmVariantWithRuntimeInternal,
target: KotlinTarget,
defaultSourceSet: FragmentMappedKotlinSourceSet
) : VariantMappedCompilationDetails<T>(variant, target, defaultSourceSet),
CompilationDetailsWithRuntime<T> {
override val runtimeDependencyFilesHolder: GradleKpmDependencyFilesHolder
get() = GradleKpmDependencyFilesHolder.ofVariantRuntimeDependencies(variant)
}
internal class WithJavaCompilationDetails<T : KotlinCommonOptions, CO : KotlinCommonCompilerOptions>(
target: KotlinTarget,
@@ -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<T : KotlinTarget>(
@@ -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<T : KotlinCommonOptions>(
open val variant: GradleKpmVariantInternal,
override val target: KotlinTarget,
defaultSourceSet: FragmentMappedKotlinSourceSet,
) : AbstractCompilationDetails<T>(defaultSourceSet) {
@Suppress("UNCHECKED_CAST")
override val compilationData: KotlinCompilationData<T>
get() = variant.compilationData as KotlinCompilationData<T>
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<CompilationDetails<*>> get() = emptySet()
override val compileDependencyFilesHolder: GradleKpmDependencyFilesHolder
get() = GradleKpmDependencyFilesHolder.ofVariantCompileDependencies(variant)
override val kotlinDependenciesHolder: HasKotlinDependencies
get() = variant
}
internal open class VariantMappedCompilationDetailsWithRuntime<T : KotlinCommonOptions>(
override val variant: GradleKpmVariantWithRuntimeInternal,
target: KotlinTarget,
defaultSourceSet: FragmentMappedKotlinSourceSet
) : VariantMappedCompilationDetails<T>(variant, target, defaultSourceSet),
CompilationDetailsWithRuntime<T> {
override val runtimeDependencyFilesHolder: GradleKpmDependencyFilesHolder
get() = GradleKpmDependencyFilesHolder.ofVariantRuntimeDependencies(variant)
}