[Gradle][KPM] Split fragment specific configurations from KotlinDependencyConfigurations

This commit is contained in:
sebastian.sellmair
2021-12-06 10:04:06 +01:00
committed by Space
parent d7df56a390
commit 2a43199287
17 changed files with 75 additions and 66 deletions
@@ -12,37 +12,4 @@ interface KotlinDependencyConfigurations {
val implementationConfiguration: Configuration
val compileOnlyConfiguration: Configuration
val runtimeOnlyConfiguration: Configuration
/** This configuration includes the dependencies from the refines-parents */
val transitiveApiConfiguration: Configuration
/** This configuration includes the dependencies from the refines-parents */
val transitiveImplementationConfiguration: Configuration
private class Impl(
override val apiConfiguration: Configuration,
override val implementationConfiguration: Configuration,
override val compileOnlyConfiguration: Configuration,
override val runtimeOnlyConfiguration: Configuration,
override val transitiveApiConfiguration:Configuration,
override val transitiveImplementationConfiguration: Configuration
) : KotlinDependencyConfigurations
companion object {
fun create(
apiConfiguration: Configuration,
implementationConfiguration: Configuration,
compileOnlyConfiguration: Configuration,
runtimeOnlyConfiguration: Configuration,
transitiveApiConfiguration: Configuration,
transitiveImplementationConfiguration: Configuration
): KotlinDependencyConfigurations = Impl(
apiConfiguration = apiConfiguration,
implementationConfiguration = implementationConfiguration,
compileOnlyConfiguration = compileOnlyConfiguration,
runtimeOnlyConfiguration = runtimeOnlyConfiguration,
transitiveApiConfiguration = transitiveApiConfiguration,
transitiveImplementationConfiguration = transitiveImplementationConfiguration
)
}
}
@@ -0,0 +1,43 @@
/*
* Copyright 2010-2021 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.gradle.api.artifacts.Configuration
interface KotlinFragmentDependencyConfigurations : KotlinDependencyConfigurations {
/** This configuration includes the dependencies from the refines-parents */
val transitiveApiConfiguration: Configuration
/** This configuration includes the dependencies from the refines-parents */
val transitiveImplementationConfiguration: Configuration
private class Impl(
override val apiConfiguration: Configuration,
override val implementationConfiguration: Configuration,
override val compileOnlyConfiguration: Configuration,
override val runtimeOnlyConfiguration: Configuration,
override val transitiveApiConfiguration: Configuration,
override val transitiveImplementationConfiguration: Configuration
) : KotlinFragmentDependencyConfigurations
companion object {
fun create(
apiConfiguration: Configuration,
implementationConfiguration: Configuration,
compileOnlyConfiguration: Configuration,
runtimeOnlyConfiguration: Configuration,
transitiveApiConfiguration: Configuration,
transitiveImplementationConfiguration: Configuration
): KotlinFragmentDependencyConfigurations = Impl(
apiConfiguration = apiConfiguration,
implementationConfiguration = implementationConfiguration,
compileOnlyConfiguration = compileOnlyConfiguration,
runtimeOnlyConfiguration = runtimeOnlyConfiguration,
transitiveApiConfiguration = transitiveApiConfiguration,
transitiveImplementationConfiguration = transitiveImplementationConfiguration
)
}
}
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.gradle.plugin.LanguageSettingsBuilder
import org.jetbrains.kotlin.project.model.KotlinModuleFragment
import org.jetbrains.kotlin.project.model.refinesClosure
interface KotlinGradleFragment : KotlinModuleFragment, HasKotlinDependencies, KotlinDependencyConfigurations, Named {
interface KotlinGradleFragment : KotlinModuleFragment, HasKotlinDependencies, KotlinFragmentDependencyConfigurations, Named {
override val kotlinSourceRoots: SourceDirectorySet
override val containingModule: KotlinGradleModule