[Gradle, MPP] Make publishing compatible with configuration cache

Capture artifact coordinates more accurately to conform with configuration cache
#KT-47611 In Progress
This commit is contained in:
Alexander Likhachev
2021-07-16 12:30:22 +03:00
parent 77471c0cd8
commit 8109b66a79
@@ -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,