[Gradle][KPM] Rename KotlinFragmentNameDisambiguation into KotlinNameDisambiguation

This commit is contained in:
sebastian.sellmair
2021-12-06 10:26:02 +01:00
committed by Space
parent 2a43199287
commit 3002829acf
10 changed files with 26 additions and 19 deletions
@@ -8,6 +8,7 @@
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.KotlinNameDisambiguation
typealias KotlinCommonFragmentFactory = KotlinGradleFragmentFactory<KotlinGradleFragmentInternal>
@@ -6,12 +6,12 @@
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
import org.gradle.api.artifacts.Configuration
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.KotlinNameDisambiguation
interface KotlinFragmentConfigurationInstantiator {
fun create(
module: KotlinGradleModule,
names: FragmentNameDisambiguation,
names: KotlinNameDisambiguation,
dependencies: KotlinFragmentDependencyConfigurations
): Configuration
}
@@ -5,15 +5,15 @@
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.KotlinNameDisambiguation
interface KotlinFragmentDependencyConfigurationsFactory {
fun create(module: KotlinGradleModule, names: FragmentNameDisambiguation): KotlinFragmentDependencyConfigurations
fun create(module: KotlinGradleModule, names: KotlinNameDisambiguation): KotlinFragmentDependencyConfigurations
}
object DefaultKotlinFragmentDependencyConfigurationsFactory : KotlinFragmentDependencyConfigurationsFactory {
override fun create(module: KotlinGradleModule, names: FragmentNameDisambiguation): KotlinFragmentDependencyConfigurations {
override fun create(module: KotlinGradleModule, names: KotlinNameDisambiguation): KotlinFragmentDependencyConfigurations {
val configurations = module.project.configurations
val apiConfiguration = configurations.maybeCreate(names.disambiguateName("api"))
val implementationConfiguration = configurations.maybeCreate(names.disambiguateName("implementation"))
@@ -9,6 +9,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.configuration.*
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.KotlinNameDisambiguation
fun <T : KotlinNativeVariantInternal> KotlinNativeVariantFactory(
nativeVariantInstantiator: KotlinNativeVariantInstantiator<T>,
@@ -10,13 +10,14 @@ import org.gradle.api.attributes.Bundling
import org.gradle.api.attributes.Category
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.KotlinNameDisambiguation
interface KotlinApiElementsConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
object DefaultKotlinApiElementsConfigurationInstantiator : KotlinApiElementsConfigurationInstantiator {
override fun create(
module: KotlinGradleModule,
names: FragmentNameDisambiguation,
names: KotlinNameDisambiguation,
dependencies: KotlinFragmentDependencyConfigurations
): Configuration {
return module.project.configurations.maybeCreate(names.disambiguateName("apiElements")).apply {
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20.configuration
import org.gradle.api.artifacts.Configuration
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.KotlinNameDisambiguation
import org.jetbrains.kotlin.gradle.utils.addExtendsFromRelation
@@ -16,7 +17,7 @@ interface KotlinCompileDependenciesConfigurationInstantiator : KotlinFragmentCon
object DefaultKotlinCompileDependenciesConfigurationInstantiator : KotlinCompileDependenciesConfigurationInstantiator {
override fun create(
module: KotlinGradleModule,
names: FragmentNameDisambiguation,
names: KotlinNameDisambiguation,
dependencies: KotlinFragmentDependencyConfigurations
): Configuration {
return module.project.configurations.maybeCreate(names.disambiguateName("compileDependencies")).apply {
@@ -11,6 +11,7 @@ import org.gradle.api.artifacts.Configuration
import org.jetbrains.kotlin.gradle.plugin.mpp.isHostSpecificKonanTargetsSet
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.KotlinNameDisambiguation
import org.jetbrains.kotlin.konan.target.KonanTarget
interface KotlinHostSpecificMetadataElementsConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
@@ -23,7 +24,7 @@ fun DefaultKotlinHostSpecificMetadataElementsConfigurationInstantiator(
private object DefaultKotlinHostSpecificMetadataElementsConfigurationInstantiator :
KotlinHostSpecificMetadataElementsConfigurationInstantiator {
override fun create(
module: KotlinGradleModule, names: FragmentNameDisambiguation, dependencies: KotlinFragmentDependencyConfigurations
module: KotlinGradleModule, names: KotlinNameDisambiguation, dependencies: KotlinFragmentDependencyConfigurations
): Configuration {
return module.project.configurations.maybeCreate(names.disambiguateName("hostSpecificMetadataElements")).apply {
isCanBeResolved = false
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20.configuration
import org.gradle.api.artifacts.Configuration
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.KotlinNameDisambiguation
import org.jetbrains.kotlin.gradle.utils.addExtendsFromRelation
interface KotlinRuntimeDependenciesConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
@@ -15,7 +16,7 @@ interface KotlinRuntimeDependenciesConfigurationInstantiator : KotlinFragmentCon
object DefaultKotlinRuntimeDependenciesConfigurationInstantiator : KotlinRuntimeDependenciesConfigurationInstantiator {
override fun create(
module: KotlinGradleModule,
names: FragmentNameDisambiguation,
names: KotlinNameDisambiguation,
dependencies: KotlinFragmentDependencyConfigurations
): Configuration {
return module.project.configurations.maybeCreate(names.disambiguateName("runtimeDependencies")).apply {
@@ -11,13 +11,14 @@ import org.gradle.api.attributes.Category
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinFragmentModuleCapabilityConfigurator.setModuleCapability
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.KotlinNameDisambiguation
interface KotlinRuntimeElementsConfigurationFactory : KotlinFragmentConfigurationInstantiator
object DefaultKotlinRuntimeElementsConfigurationInstantiator : KotlinRuntimeElementsConfigurationFactory {
override fun create(
module: KotlinGradleModule,
names: FragmentNameDisambiguation,
names: KotlinNameDisambiguation,
dependencies: KotlinFragmentDependencyConfigurations
): Configuration {
return module.project.configurations.maybeCreate(names.disambiguateName("runtimeElements")).apply {
@@ -12,14 +12,8 @@ import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
import org.jetbrains.kotlin.project.model.KotlinModule
import org.jetbrains.kotlin.project.model.KotlinModuleFragment
internal typealias FragmentNameDisambiguation = KotlinFragmentNameDisambiguation
internal fun FragmentNameDisambiguation(module: KotlinModule, fragmentName: String): FragmentNameDisambiguation {
return DefaultKotlinFragmentNameDisambiguation(module, fragmentName)
}
/**
* Mechanism for disambiguating/scoping names for a certain fragment.
* Mechanism for disambiguating/scoping names for certain entities (e.g. fragments)
* e.g. Certain fragments might want to create a configuration called 'api'. However, the name scope
* of Gradle configurations is bound to the Gradle project which requires providing different names of mentioned configurations
* for FragmentFoo and FragmentBar.
@@ -36,14 +30,20 @@ internal fun FragmentNameDisambiguation(module: KotlinModule, fragmentName: Stri
* fragmentBar.disambiguateName("api") == "fragmentBarTestApi"
* ```
*/
interface KotlinFragmentNameDisambiguation {
interface KotlinNameDisambiguation {
fun disambiguateName(simpleName: String): String
}
/* Default implementation for fragments */
internal fun FragmentNameDisambiguation(module: KotlinModule, fragmentName: String): KotlinNameDisambiguation {
return DefaultKotlinFragmentNameDisambiguation(module, fragmentName)
}
private class DefaultKotlinFragmentNameDisambiguation(
private val module: KotlinModule,
private val fragmentName: String
) : KotlinFragmentNameDisambiguation {
) : KotlinNameDisambiguation {
override fun disambiguateName(simpleName: String): String {
return KotlinModuleFragment.disambiguateName(module, fragmentName, simpleName)
}