[Gradle] Add kotlinNativeFrameworkNameAttribute for binary frameworks

^KT-57668 Verification Pending
This commit is contained in:
Anton Lakotka
2023-03-29 21:10:38 +02:00
committed by Space Team
parent ae228ece8a
commit ad9b34653a
2 changed files with 8 additions and 3 deletions
@@ -151,6 +151,10 @@ abstract class KotlinNativeTarget @Inject constructor(
"org.jetbrains.kotlin.native.build.type",
String::class.java
)
val kotlinNativeFrameworkNameAttribute = Attribute.of(
"org.jetbrains.kotlin.native.framework.name",
String::class.java
)
}
}
@@ -46,7 +46,8 @@ private val Framework.frameworkGroupDescription
internal fun Project.createFrameworkArtifact(binaryFramework: Framework, linkTask: TaskProvider<KotlinNativeLink>) {
val frameworkConfiguration = configurations.getOrCreate(binaryFramework.binaryFrameworkConfigurationName, invokeWhenCreated = {
it.markConsumable()
it.applyBinaryFrameworkAttributes(project, binaryFramework.frameworkGroupDescription, listOf(binaryFramework.target))
it.applyBinaryFrameworkGroupAttributes(project, binaryFramework.frameworkGroupDescription, listOf(binaryFramework.target))
it.attributes.attribute(KotlinNativeTarget.kotlinNativeFrameworkNameAttribute, binaryFramework.baseName)
})
addFrameworkArtifact(frameworkConfiguration, linkTask.flatMap { it.outputFile })
@@ -69,7 +70,7 @@ internal fun KotlinMultiplatformExtension.createFatFrameworks() {
private val Framework.binaryFrameworkConfigurationName get() = lowerCamelCaseName(name, target.name)
private val FrameworkGroupDescription.fatFrameworkConfigurationName get() = lowerCamelCaseName(frameworkName, targetFamilyName, "fat")
private fun Configuration.applyBinaryFrameworkAttributes(
private fun Configuration.applyBinaryFrameworkGroupAttributes(
project: Project,
frameworkDescription: FrameworkGroupDescription,
targets: List<KotlinNativeTarget>
@@ -117,7 +118,7 @@ private fun Project.createFatFramework(groupDescription: FrameworkGroupDescripti
val fatFrameworkConfiguration = project.configurations.getOrCreate(fatFrameworkConfigurationName, invokeWhenCreated = {
it.markConsumable()
it.applyBinaryFrameworkAttributes(project, groupDescription, targets = frameworks.map(Framework::target))
it.applyBinaryFrameworkGroupAttributes(project, groupDescription, targets = frameworks.map(Framework::target))
})
addFrameworkArtifact(fatFrameworkConfiguration, fatFrameworkTask.map { it.fatFramework })