diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCommonFragmentFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCommonFragmentFactory.kt index d1e557e17f8..0c857b5c978 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCommonFragmentFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCommonFragmentFactory.kt @@ -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 diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentConfigurationInstantiator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentConfigurationInstantiator.kt index 65805a1942c..3de3fbc750f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentConfigurationInstantiator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentConfigurationInstantiator.kt @@ -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 } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentDependencyConfigurationsFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentDependencyConfigurationsFactory.kt index c5714e5cd01..a87a6b914d0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentDependencyConfigurationsFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentDependencyConfigurationsFactory.kt @@ -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")) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinNativeVariantFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinNativeVariantFactory.kt index cb00f2d3179..2af59394805 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinNativeVariantFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinNativeVariantFactory.kt @@ -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 KotlinNativeVariantFactory( nativeVariantInstantiator: KotlinNativeVariantInstantiator, diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinApiElements.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinApiElements.kt index 769e93d1be3..80b796a569d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinApiElements.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinApiElements.kt @@ -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 { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinCompileDependencies.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinCompileDependencies.kt index a166e94a044..0b5686f55d2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinCompileDependencies.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinCompileDependencies.kt @@ -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 { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinHostSpecificMetadataElements.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinHostSpecificMetadataElements.kt index fa02d3a49ed..2fcf540e754 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinHostSpecificMetadataElements.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinHostSpecificMetadataElements.kt @@ -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 diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinRuntimeDependencies.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinRuntimeDependencies.kt index 36f46b8a899..bb9b00cf7f2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinRuntimeDependencies.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinRuntimeDependencies.kt @@ -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 { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinRuntimeElements.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinRuntimeElements.kt index 0a289a88868..57e87336494 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinRuntimeElements.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinRuntimeElements.kt @@ -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 { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/KotlinFragmentNameDisambiguation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/KotlinNameDisambiguation.kt similarity index 88% rename from libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/KotlinFragmentNameDisambiguation.kt rename to libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/KotlinNameDisambiguation.kt index b38652b7043..ffa3f5da85f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/KotlinFragmentNameDisambiguation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/KotlinNameDisambiguation.kt @@ -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) }