[Gradle, K/N] Add user-defined variant attributes to framework artifact
This commit is contained in:
+10
@@ -165,6 +165,16 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget>(
|
|||||||
KotlinNativeTarget.konanBuildTypeAttribute,
|
KotlinNativeTarget.konanBuildTypeAttribute,
|
||||||
binary.buildType.name
|
binary.buildType.name
|
||||||
)
|
)
|
||||||
|
// capture type parameter T
|
||||||
|
fun <T> copyAttribute(key: Attribute<T>, 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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-1
@@ -11,6 +11,9 @@ import org.gradle.api.Action
|
|||||||
import org.gradle.api.Named
|
import org.gradle.api.Named
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.artifacts.Dependency
|
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.provider.Provider
|
||||||
import org.gradle.api.tasks.AbstractExecTask
|
import org.gradle.api.tasks.AbstractExecTask
|
||||||
import org.gradle.api.tasks.TaskProvider
|
import org.gradle.api.tasks.TaskProvider
|
||||||
@@ -229,7 +232,11 @@ class Framework(
|
|||||||
baseName: String,
|
baseName: String,
|
||||||
buildType: NativeBuildType,
|
buildType: NativeBuildType,
|
||||||
compilation: KotlinNativeCompilation
|
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
|
override val outputKind: NativeOutputKind
|
||||||
get() = NativeOutputKind.FRAMEWORK
|
get() = NativeOutputKind.FRAMEWORK
|
||||||
|
|||||||
Reference in New Issue
Block a user