[Gradle] Use CommonizerTargetAttribute to disambiguate...

...commonized cinterop configurations.

^KT-59596 Verification Pending
This commit is contained in:
Anton Lakotka
2023-08-08 09:44:31 +02:00
committed by Space Team
parent 373c838ebb
commit 14f216764d
@@ -83,13 +83,6 @@ internal fun Project.locateOrCreateCInteropDependencyConfiguration(
}
}
private fun Configuration.applyAttributesForCommonizerTarget(commonizerTarget: SharedCommonizerTarget) {
attributes.attribute(KotlinPlatformType.attribute, KotlinPlatformType.native)
// TODO: [KotlinNativeTarget.konanTargetAttribute] is a public attribute. It should be better to introduce dedicated private attribute
// TODO: for commonized target
attributes.attribute(KotlinNativeTarget.konanTargetAttribute, commonizerTarget.dashedIdentityString())
}
internal suspend fun Project.locateOrCreateCommonizedCInteropDependencyConfiguration(
sourceSet: KotlinSourceSet,
): Configuration? {
@@ -174,6 +167,11 @@ private fun commonizedCInteropApiElementsConfigurationName(commonizerTarget: Sha
return commonizerTarget.dashedIdentityString() + "CInteropApiElements"
}
private fun Configuration.applyAttributesForCommonizerTarget(commonizerTarget: SharedCommonizerTarget) {
attributes.attribute(KotlinPlatformType.attribute, KotlinPlatformType.native)
CommonizerTargetAttribute.apply(attributes, commonizerTarget)
}
internal object CInteropKlibLibraryElements {
const val CINTEROP_KLIB = "cinterop-klib"
@@ -196,3 +194,12 @@ private class CInteropLibraryElementsCompatibilityRule : AttributeCompatibilityR
}
}
private object CommonizerTargetAttribute {
private val attribute = Attribute.of("org.jetbrains.kotlin.native.commonizerTarget", String::class.java)
private val SharedCommonizerTarget.attributeValue get() = dashedIdentityString()
fun apply(attributeContainer: AttributeContainer, sharedCommonizerTarget: SharedCommonizerTarget) {
attributeContainer.attribute(attribute, sharedCommonizerTarget.attributeValue)
}
}