diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinVariants.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinVariants.kt index 47f6271d4dd..67c832e37db 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinVariants.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinVariants.kt @@ -15,6 +15,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.KotlinTargetComponent import org.jetbrains.kotlin.gradle.utils.dashSeparatedName +import org.jetbrains.kotlin.gradle.utils.getValue import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName internal interface KotlinTargetComponentWithPublication : KotlinTargetComponent { @@ -27,25 +28,25 @@ internal fun getCoordinatesFromPublicationDelegateAndProject( publication: MavenPublication?, project: Project, target: KotlinTarget? -): ModuleVersionIdentifier = - object : ModuleVersionIdentifier { - private val moduleName: String - get() = - publication?.artifactId ?: dashSeparatedName(project.name, target?.name?.toLowerCase()) - - private val moduleGroup: String - get() = - publication?.groupId ?: project.group.toString() +): ModuleVersionIdentifier { + val moduleNameProvider = project.provider { publication?.artifactId ?: dashSeparatedName(project.name, target?.name?.toLowerCase()) } + val moduleGroupProvider = project.provider { publication?.groupId ?: project.group.toString() } + val moduleVersionProvider = project.provider { publication?.version ?: project.version.toString() } + return object : ModuleVersionIdentifier { + private val moduleName: String by moduleNameProvider + private val moduleGroup: String by moduleGroupProvider + private val moduleVersion: String by moduleVersionProvider override fun getGroup() = moduleGroup override fun getName() = moduleName - override fun getVersion() = publication?.version ?: project.version.toString() + override fun getVersion() = moduleVersion override fun getModule(): ModuleIdentifier = object : ModuleIdentifier { override fun getGroup(): String = moduleGroup override fun getName(): String = moduleName } } +} private interface KotlinTargetComponentWithCoordinatesAndPublication : KotlinTargetComponentWithPublication,