diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt index 41921def23c..973010503b0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt @@ -165,6 +165,16 @@ open class KotlinNativeTargetConfigurator( KotlinNativeTarget.konanBuildTypeAttribute, binary.buildType.name ) + // capture type parameter T + fun copyAttribute(key: Attribute, from: AttributeContainer, to: AttributeContainer) { + to.attribute(key, from.getAttribute(key)!!) + } + binary.target.getAttributes().keySet().forEach { + copyAttribute(it, binary.target.getAttributes(), this.attributes) + } + binary.attributes.keySet().forEach { + copyAttribute(it, binary.attributes, this.attributes) + } } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt index eda05f6daf8..ce521fc7eab 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt @@ -11,6 +11,9 @@ import org.gradle.api.Action import org.gradle.api.Named import org.gradle.api.Project import org.gradle.api.artifacts.Dependency +import org.gradle.api.attributes.Attribute +import org.gradle.api.attributes.AttributeContainer +import org.gradle.api.attributes.HasAttributes import org.gradle.api.provider.Provider import org.gradle.api.tasks.AbstractExecTask import org.gradle.api.tasks.TaskProvider @@ -229,7 +232,11 @@ class Framework( baseName: String, buildType: NativeBuildType, compilation: KotlinNativeCompilation -) : AbstractNativeLibrary(name, baseName, buildType, compilation) { +) : AbstractNativeLibrary(name, baseName, buildType, compilation), HasAttributes { + + private val attributeContainer = HierarchyAttributeContainer(parent = null) + + override fun getAttributes() = attributeContainer override val outputKind: NativeOutputKind get() = NativeOutputKind.FRAMEWORK