[Gradle][KPM] Split fragment specific configurations from KotlinDependencyConfigurations
This commit is contained in:
committed by
Space
parent
d7df56a390
commit
2a43199287
-33
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+43
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -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
|
||||
|
||||
+2
-2
@@ -24,8 +24,8 @@ fun KotlinCommonFragmentFactory(
|
||||
|
||||
class KotlinCommonFragmentInstantiator(
|
||||
private val module: KotlinGradleModule,
|
||||
private val dependencyConfigurationsFactory: KotlinDependencyConfigurationsFactory =
|
||||
DefaultKotlinDependencyConfigurationsFactory
|
||||
private val dependencyConfigurationsFactory: KotlinFragmentDependencyConfigurationsFactory =
|
||||
DefaultKotlinFragmentDependencyConfigurationsFactory
|
||||
) : KotlinGradleFragmentFactory.FragmentInstantiator<KotlinGradleFragmentInternal> {
|
||||
override fun create(name: String): KotlinGradleFragmentInternal {
|
||||
val names = FragmentNameDisambiguation(module, name)
|
||||
|
||||
+1
-1
@@ -12,6 +12,6 @@ interface KotlinFragmentConfigurationInstantiator {
|
||||
fun create(
|
||||
module: KotlinGradleModule,
|
||||
names: FragmentNameDisambiguation,
|
||||
dependencies: KotlinDependencyConfigurations
|
||||
dependencies: KotlinFragmentDependencyConfigurations
|
||||
): Configuration
|
||||
}
|
||||
|
||||
+5
-5
@@ -7,13 +7,13 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
||||
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
||||
|
||||
interface KotlinDependencyConfigurationsFactory {
|
||||
fun create(module: KotlinGradleModule, names: FragmentNameDisambiguation): KotlinDependencyConfigurations
|
||||
interface KotlinFragmentDependencyConfigurationsFactory {
|
||||
fun create(module: KotlinGradleModule, names: FragmentNameDisambiguation): KotlinFragmentDependencyConfigurations
|
||||
}
|
||||
|
||||
object DefaultKotlinDependencyConfigurationsFactory : KotlinDependencyConfigurationsFactory {
|
||||
object DefaultKotlinFragmentDependencyConfigurationsFactory : KotlinFragmentDependencyConfigurationsFactory {
|
||||
|
||||
override fun create(module: KotlinGradleModule, names: FragmentNameDisambiguation): KotlinDependencyConfigurations {
|
||||
override fun create(module: KotlinGradleModule, names: FragmentNameDisambiguation): KotlinFragmentDependencyConfigurations {
|
||||
val configurations = module.project.configurations
|
||||
val apiConfiguration = configurations.maybeCreate(names.disambiguateName("api"))
|
||||
val implementationConfiguration = configurations.maybeCreate(names.disambiguateName("implementation"))
|
||||
@@ -37,7 +37,7 @@ object DefaultKotlinDependencyConfigurationsFactory : KotlinDependencyConfigurat
|
||||
transitiveApiConfiguration.extendsFrom(apiConfiguration)
|
||||
transitiveImplementationConfiguration.extendsFrom(implementationConfiguration)
|
||||
|
||||
return KotlinDependencyConfigurations.create(
|
||||
return KotlinFragmentDependencyConfigurations.create(
|
||||
apiConfiguration = apiConfiguration,
|
||||
implementationConfiguration = implementationConfiguration,
|
||||
compileOnlyConfiguration = compileOnlyConfiguration,
|
||||
+2
-2
@@ -28,8 +28,8 @@ import javax.inject.Inject
|
||||
open class KotlinGradleFragmentInternal @Inject constructor(
|
||||
final override val containingModule: KotlinGradleModule,
|
||||
final override val fragmentName: String,
|
||||
dependencyConfigurations: KotlinDependencyConfigurations
|
||||
) : KotlinGradleFragment, KotlinDependencyConfigurations by dependencyConfigurations {
|
||||
dependencyConfigurations: KotlinFragmentDependencyConfigurations
|
||||
) : KotlinGradleFragment, KotlinFragmentDependencyConfigurations by dependencyConfigurations {
|
||||
|
||||
final override fun getName(): String = fragmentName
|
||||
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.filterModuleName
|
||||
open class KotlinJvmVariant(
|
||||
containingModule: KotlinGradleModule,
|
||||
fragmentName: String,
|
||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||
dependencyConfigurations: KotlinFragmentDependencyConfigurations,
|
||||
compileDependenciesConfiguration: Configuration,
|
||||
apiElementsConfiguration: Configuration,
|
||||
runtimeDependenciesConfiguration: Configuration,
|
||||
|
||||
+2
-2
@@ -26,8 +26,8 @@ fun KotlinJvmVariantFactory(
|
||||
class KotlinJvmVariantInstantiator(
|
||||
private val module: KotlinGradleModule,
|
||||
|
||||
private val dependenciesConfigurationFactory: KotlinDependencyConfigurationsFactory =
|
||||
DefaultKotlinDependencyConfigurationsFactory,
|
||||
private val dependenciesConfigurationFactory: KotlinFragmentDependencyConfigurationsFactory =
|
||||
DefaultKotlinFragmentDependencyConfigurationsFactory,
|
||||
|
||||
private val compileDependenciesConfigurationInstantiator: KotlinCompileDependenciesConfigurationInstantiator =
|
||||
DefaultKotlinCompileDependenciesConfigurationInstantiator,
|
||||
|
||||
+8
-8
@@ -18,7 +18,7 @@ abstract class KotlinNativeVariantInternal(
|
||||
containingModule: KotlinGradleModule,
|
||||
fragmentName: String,
|
||||
val konanTarget: KonanTarget,
|
||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||
dependencyConfigurations: KotlinFragmentDependencyConfigurations,
|
||||
compileDependencyConfiguration: Configuration,
|
||||
apiElementsConfiguration: Configuration,
|
||||
final override val hostSpecificMetadataElementsConfiguration: Configuration?
|
||||
@@ -50,7 +50,7 @@ class KotlinNativeVariantConstructor<T : KotlinNativeVariantInternal>(
|
||||
private val constructor: (
|
||||
containingModule: KotlinGradleModule,
|
||||
fragmentName: String,
|
||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||
dependencyConfigurations: KotlinFragmentDependencyConfigurations,
|
||||
compileDependencyConfiguration: Configuration,
|
||||
apiElementsConfiguration: Configuration,
|
||||
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||
@@ -59,7 +59,7 @@ class KotlinNativeVariantConstructor<T : KotlinNativeVariantInternal>(
|
||||
operator fun invoke(
|
||||
containingModule: KotlinGradleModule,
|
||||
fragmentName: String,
|
||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||
dependencyConfigurations: KotlinFragmentDependencyConfigurations,
|
||||
compileDependencyConfiguration: Configuration,
|
||||
apiElementsConfiguration: Configuration,
|
||||
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||
@@ -76,7 +76,7 @@ class KotlinNativeVariantConstructor<T : KotlinNativeVariantInternal>(
|
||||
open class KotlinLinuxX64Variant @Inject constructor(
|
||||
containingModule: KotlinGradleModule,
|
||||
fragmentName: String,
|
||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||
dependencyConfigurations: KotlinFragmentDependencyConfigurations,
|
||||
compileDependencyConfiguration: Configuration,
|
||||
apiElementsConfiguration: Configuration,
|
||||
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||
@@ -99,7 +99,7 @@ open class KotlinLinuxX64Variant @Inject constructor(
|
||||
open class KotlinMacosX64Variant @Inject constructor(
|
||||
containingModule: KotlinGradleModule,
|
||||
fragmentName: String,
|
||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||
dependencyConfigurations: KotlinFragmentDependencyConfigurations,
|
||||
compileDependencyConfiguration: Configuration,
|
||||
apiElementsConfiguration: Configuration,
|
||||
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||
@@ -121,7 +121,7 @@ open class KotlinMacosX64Variant @Inject constructor(
|
||||
|
||||
open class KotlinMacosArm64Variant @Inject constructor(
|
||||
containingModule: KotlinGradleModule, fragmentName: String,
|
||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||
dependencyConfigurations: KotlinFragmentDependencyConfigurations,
|
||||
compileDependencyConfiguration: Configuration,
|
||||
apiElementsConfiguration: Configuration,
|
||||
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||
@@ -144,7 +144,7 @@ open class KotlinMacosArm64Variant @Inject constructor(
|
||||
open class KotlinIosX64Variant @Inject constructor(
|
||||
containingModule: KotlinGradleModule,
|
||||
fragmentName: String,
|
||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||
dependencyConfigurations: KotlinFragmentDependencyConfigurations,
|
||||
compileDependencyConfiguration: Configuration,
|
||||
apiElementsConfiguration: Configuration,
|
||||
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||
@@ -167,7 +167,7 @@ open class KotlinIosX64Variant @Inject constructor(
|
||||
open class KotlinIosArm64Variant @Inject constructor(
|
||||
containingModule: KotlinGradleModule,
|
||||
fragmentName: String,
|
||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||
dependencyConfigurations: KotlinFragmentDependencyConfigurations,
|
||||
compileDependencyConfiguration: Configuration,
|
||||
apiElementsConfiguration: Configuration,
|
||||
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||
|
||||
+2
-2
@@ -23,8 +23,8 @@ class KotlinNativeVariantInstantiator<T : KotlinNativeVariantInternal>(
|
||||
|
||||
private val kotlinNativeVariantConstructor: KotlinNativeVariantConstructor<T>,
|
||||
|
||||
private val dependenciesConfigurationFactory: KotlinDependencyConfigurationsFactory =
|
||||
DefaultKotlinDependencyConfigurationsFactory,
|
||||
private val dependenciesConfigurationFactory: KotlinFragmentDependencyConfigurationsFactory =
|
||||
DefaultKotlinFragmentDependencyConfigurationsFactory,
|
||||
|
||||
private val compileDependenciesConfigurationInstantiator: KotlinCompileDependenciesConfigurationInstantiator =
|
||||
DefaultKotlinCompileDependenciesConfigurationInstantiator,
|
||||
|
||||
+3
-4
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
||||
|
||||
import org.gradle.api.NamedDomainObjectProvider
|
||||
import org.gradle.api.artifacts.Configuration
|
||||
import org.gradle.api.file.ConfigurableFileCollection
|
||||
import org.gradle.api.file.FileCollection
|
||||
@@ -24,7 +23,7 @@ import org.jetbrains.kotlin.project.model.KotlinPlatformTypeAttribute
|
||||
abstract class KotlinGradleVariantInternal(
|
||||
containingModule: KotlinGradleModule,
|
||||
fragmentName: String,
|
||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||
dependencyConfigurations: KotlinFragmentDependencyConfigurations,
|
||||
final override val compileDependenciesConfiguration: Configuration,
|
||||
final override val apiElementsConfiguration: Configuration
|
||||
) : KotlinGradleFragmentInternal(
|
||||
@@ -79,7 +78,7 @@ internal val KotlinGradleVariant.defaultSourceArtifactTaskName: String
|
||||
abstract class KotlinGradleVariantWithRuntimeInternal(
|
||||
containingModule: KotlinGradleModule,
|
||||
fragmentName: String,
|
||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||
dependencyConfigurations: KotlinFragmentDependencyConfigurations,
|
||||
compileDependencyConfiguration: Configuration,
|
||||
apiElementsConfiguration: Configuration,
|
||||
final override val runtimeDependenciesConfiguration: Configuration,
|
||||
@@ -104,7 +103,7 @@ private fun defaultModuleSuffix(module: KotlinGradleModule, variantName: String)
|
||||
|
||||
abstract class KotlinGradlePublishedVariantWithRuntime(
|
||||
containingModule: KotlinGradleModule, fragmentName: String,
|
||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||
dependencyConfigurations: KotlinFragmentDependencyConfigurations,
|
||||
compileDependencyConfiguration: Configuration,
|
||||
apiElementsConfiguration: Configuration,
|
||||
runtimeDependencyConfiguration: Configuration,
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ object DefaultKotlinApiElementsConfigurationInstantiator : KotlinApiElementsConf
|
||||
override fun create(
|
||||
module: KotlinGradleModule,
|
||||
names: FragmentNameDisambiguation,
|
||||
dependencies: KotlinDependencyConfigurations
|
||||
dependencies: KotlinFragmentDependencyConfigurations
|
||||
): Configuration {
|
||||
return module.project.configurations.maybeCreate(names.disambiguateName("apiElements")).apply {
|
||||
isCanBeResolved = false
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ object DefaultKotlinCompileDependenciesConfigurationInstantiator : KotlinCompile
|
||||
override fun create(
|
||||
module: KotlinGradleModule,
|
||||
names: FragmentNameDisambiguation,
|
||||
dependencies: KotlinDependencyConfigurations
|
||||
dependencies: KotlinFragmentDependencyConfigurations
|
||||
): Configuration {
|
||||
return module.project.configurations.maybeCreate(names.disambiguateName("compileDependencies")).apply {
|
||||
isCanBeConsumed = false
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ fun DefaultKotlinHostSpecificMetadataElementsConfigurationInstantiator(
|
||||
private object DefaultKotlinHostSpecificMetadataElementsConfigurationInstantiator :
|
||||
KotlinHostSpecificMetadataElementsConfigurationInstantiator {
|
||||
override fun create(
|
||||
module: KotlinGradleModule, names: FragmentNameDisambiguation, dependencies: KotlinDependencyConfigurations
|
||||
module: KotlinGradleModule, names: FragmentNameDisambiguation, dependencies: KotlinFragmentDependencyConfigurations
|
||||
): Configuration {
|
||||
return module.project.configurations.maybeCreate(names.disambiguateName("hostSpecificMetadataElements")).apply {
|
||||
isCanBeResolved = false
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ object DefaultKotlinRuntimeDependenciesConfigurationInstantiator : KotlinRuntime
|
||||
override fun create(
|
||||
module: KotlinGradleModule,
|
||||
names: FragmentNameDisambiguation,
|
||||
dependencies: KotlinDependencyConfigurations
|
||||
dependencies: KotlinFragmentDependencyConfigurations
|
||||
): Configuration {
|
||||
return module.project.configurations.maybeCreate(names.disambiguateName("runtimeDependencies")).apply {
|
||||
isCanBeConsumed = false
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ object DefaultKotlinRuntimeElementsConfigurationInstantiator : KotlinRuntimeElem
|
||||
override fun create(
|
||||
module: KotlinGradleModule,
|
||||
names: FragmentNameDisambiguation,
|
||||
dependencies: KotlinDependencyConfigurations
|
||||
dependencies: KotlinFragmentDependencyConfigurations
|
||||
): Configuration {
|
||||
return module.project.configurations.maybeCreate(names.disambiguateName("runtimeElements")).apply {
|
||||
isCanBeResolved = false
|
||||
|
||||
Reference in New Issue
Block a user