[Gradle] Add user-specific attributes to host-specific metadata elements
KT-55751 Verification Pending KT-56450 Verification Pending
This commit is contained in:
committed by
Space Team
parent
427ef8fc47
commit
92cc13961f
+8
@@ -244,6 +244,14 @@ internal fun applyUserDefinedAttributes(target: AbstractKotlinTarget) {
|
||||
.mapNotNull { configurationName -> target.project.configurations.findByName(configurationName) }
|
||||
.forEach { configuration -> copyAttributes(compilationAttributes, configuration.attributes) }
|
||||
}
|
||||
|
||||
// Copy to host-specific metadata elements configurations
|
||||
if (target is KotlinNativeTarget) {
|
||||
val hostSpecificMetadataElements = project.configurations.findByName(target.hostSpecificMetadataElementsConfigurationName)
|
||||
if (hostSpecificMetadataElements != null) {
|
||||
copyAttributes(from = target.attributes, to = hostSpecificMetadataElements.attributes)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-4
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.gradle.plugin.internal.artifactTypeAttribute
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.registerEmbedAndSignAppleFrameworkTask
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmVariant
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.copyAttributes
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultLanguageSettingsBuilder
|
||||
import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
|
||||
import org.jetbrains.kotlin.gradle.targets.native.*
|
||||
@@ -213,10 +214,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
||||
|
||||
configuration.extendsFrom(*apiElements.extendsFrom.toTypedArray())
|
||||
|
||||
fun <T> copyAttribute(from: AttributeContainer, to: AttributeContainer, attribute: Attribute<T>) {
|
||||
to.attribute(attribute, from.getAttribute(attribute)!!)
|
||||
}
|
||||
with(apiElements.attributes) { keySet().forEach { copyAttribute(this, configuration.attributes, it) } }
|
||||
copyAttributes(from = apiElements.attributes, to = configuration.attributes)
|
||||
configuration.attributes.attribute(USAGE_ATTRIBUTE, objects.named(Usage::class.java, KotlinUsages.KOTLIN_METADATA))
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -573,7 +573,8 @@ class ConfigurationsTest : MultiplatformExtensionTest() {
|
||||
binaries.framework("main", listOf(NativeBuildType.DEBUG))
|
||||
}
|
||||
|
||||
linuxX64()
|
||||
linuxX64("linuxA") { attributes { attribute(distinguishingAttribute, "linuxA") } }
|
||||
linuxX64("linuxB") { attributes { attribute(distinguishingAttribute, "linuxB") } }
|
||||
|
||||
targets.filterIsInstance<KotlinNativeTarget>().forEach {
|
||||
it.binaries {
|
||||
|
||||
Reference in New Issue
Block a user