[Gradle] Add 'CATEGORY_ATTRIBUTE=LIBRARY' attribute to configurations
^KT-36941 Verification Pending This is necessary to fix: https://youtrack.jetbrains.com/issue/KTIJ-10769 by preventing confusion with the `samplessources` variant.
This commit is contained in:
committed by
Space
parent
a279b2230f
commit
ed152e74a0
+47
@@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@file:Suppress("FunctionName")
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle
|
||||||
|
|
||||||
|
import org.gradle.api.attributes.Category
|
||||||
|
import org.gradle.api.attributes.Usage
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||||
|
import kotlin.test.Test
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
import kotlin.test.assertNotNull
|
||||||
|
|
||||||
|
class ConfigurationsTest : MultiplatformExtensionTest() {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `consumable configurations with platform target are marked with Category LIBRARY`() {
|
||||||
|
kotlin.linuxX64()
|
||||||
|
kotlin.iosX64()
|
||||||
|
kotlin.iosArm64()
|
||||||
|
kotlin.jvm()
|
||||||
|
kotlin.js()
|
||||||
|
|
||||||
|
val nativeMain = kotlin.sourceSets.create("nativeMain")
|
||||||
|
kotlin.targets.withType(KotlinNativeTarget::class.java).all { target ->
|
||||||
|
target.compilations.getByName("main").defaultSourceSet.dependsOn(nativeMain)
|
||||||
|
}
|
||||||
|
|
||||||
|
project.evaluate()
|
||||||
|
|
||||||
|
project.configurations
|
||||||
|
.filter { configuration ->
|
||||||
|
configuration.attributes.contains(KotlinPlatformType.attribute) ||
|
||||||
|
configuration.attributes.getAttribute(Usage.USAGE_ATTRIBUTE)?.name in KotlinUsages.values
|
||||||
|
}
|
||||||
|
.forEach { configuration ->
|
||||||
|
val category = configuration.attributes.getAttribute(Category.CATEGORY_ATTRIBUTE)
|
||||||
|
assertNotNull(category, "Expected configuration ${configuration.name} to provide 'Category' attribute")
|
||||||
|
assertEquals(Category.LIBRARY, category.name, "Expected configuration $configuration to be 'LIBRARY' Category")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+3
@@ -13,6 +13,7 @@ import com.android.build.gradle.api.SourceKind
|
|||||||
import org.gradle.api.*
|
import org.gradle.api.*
|
||||||
import org.gradle.api.artifacts.maven.Conf2ScopeMappingContainer
|
import org.gradle.api.artifacts.maven.Conf2ScopeMappingContainer
|
||||||
import org.gradle.api.artifacts.maven.MavenResolver
|
import org.gradle.api.artifacts.maven.MavenResolver
|
||||||
|
import org.gradle.api.attributes.Category
|
||||||
import org.gradle.api.attributes.Usage
|
import org.gradle.api.attributes.Usage
|
||||||
import org.gradle.api.file.ConfigurableFileTree
|
import org.gradle.api.file.ConfigurableFileTree
|
||||||
import org.gradle.api.file.Directory
|
import org.gradle.api.file.Directory
|
||||||
@@ -574,12 +575,14 @@ internal abstract class AbstractKotlinPlugin(
|
|||||||
if (kotlinTarget.platformType != KotlinPlatformType.common) {
|
if (kotlinTarget.platformType != KotlinPlatformType.common) {
|
||||||
project.configurations.getByName(kotlinTarget.apiElementsConfigurationName).run {
|
project.configurations.getByName(kotlinTarget.apiElementsConfigurationName).run {
|
||||||
attributes.attribute(Usage.USAGE_ATTRIBUTE, KotlinUsages.producerApiUsage(kotlinTarget))
|
attributes.attribute(Usage.USAGE_ATTRIBUTE, KotlinUsages.producerApiUsage(kotlinTarget))
|
||||||
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
setupAsPublicConfigurationIfSupported(kotlinTarget)
|
setupAsPublicConfigurationIfSupported(kotlinTarget)
|
||||||
usesPlatformOf(kotlinTarget)
|
usesPlatformOf(kotlinTarget)
|
||||||
}
|
}
|
||||||
|
|
||||||
project.configurations.getByName(kotlinTarget.runtimeElementsConfigurationName).run {
|
project.configurations.getByName(kotlinTarget.runtimeElementsConfigurationName).run {
|
||||||
attributes.attribute(Usage.USAGE_ATTRIBUTE, KotlinUsages.producerRuntimeUsage(kotlinTarget))
|
attributes.attribute(Usage.USAGE_ATTRIBUTE, KotlinUsages.producerRuntimeUsage(kotlinTarget))
|
||||||
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
setupAsPublicConfigurationIfSupported(kotlinTarget)
|
setupAsPublicConfigurationIfSupported(kotlinTarget)
|
||||||
usesPlatformOf(kotlinTarget)
|
usesPlatformOf(kotlinTarget)
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-1
@@ -12,6 +12,7 @@ import org.gradle.api.artifacts.Configuration
|
|||||||
import org.gradle.api.artifacts.Dependency
|
import org.gradle.api.artifacts.Dependency
|
||||||
import org.gradle.api.artifacts.PublishArtifact
|
import org.gradle.api.artifacts.PublishArtifact
|
||||||
import org.gradle.api.artifacts.type.ArtifactTypeDefinition
|
import org.gradle.api.artifacts.type.ArtifactTypeDefinition
|
||||||
|
import org.gradle.api.attributes.Category
|
||||||
import org.gradle.api.attributes.Usage
|
import org.gradle.api.attributes.Usage
|
||||||
import org.gradle.api.attributes.Usage.USAGE_ATTRIBUTE
|
import org.gradle.api.attributes.Usage.USAGE_ATTRIBUTE
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
@@ -181,6 +182,7 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
|
|||||||
isCanBeResolved = false
|
isCanBeResolved = false
|
||||||
isCanBeConsumed = true
|
isCanBeConsumed = true
|
||||||
attributes.attribute(USAGE_ATTRIBUTE, KotlinUsages.producerApiUsage(target))
|
attributes.attribute(USAGE_ATTRIBUTE, KotlinUsages.producerApiUsage(target))
|
||||||
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
extendsFrom(configurations.maybeCreate(mainCompilation.apiConfigurationName))
|
extendsFrom(configurations.maybeCreate(mainCompilation.apiConfigurationName))
|
||||||
if (mainCompilation is KotlinCompilationToRunnableFiles) {
|
if (mainCompilation is KotlinCompilationToRunnableFiles) {
|
||||||
val runtimeConfiguration = configurations.findByName(mainCompilation.deprecatedRuntimeConfigurationName)
|
val runtimeConfiguration = configurations.findByName(mainCompilation.deprecatedRuntimeConfigurationName)
|
||||||
@@ -197,6 +199,7 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
|
|||||||
isCanBeConsumed = true
|
isCanBeConsumed = true
|
||||||
isCanBeResolved = false
|
isCanBeResolved = false
|
||||||
attributes.attribute(USAGE_ATTRIBUTE, KotlinUsages.producerRuntimeUsage(target))
|
attributes.attribute(USAGE_ATTRIBUTE, KotlinUsages.producerRuntimeUsage(target))
|
||||||
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
val runtimeConfiguration = configurations.findByName(mainCompilation.deprecatedRuntimeConfigurationName)
|
val runtimeConfiguration = configurations.findByName(mainCompilation.deprecatedRuntimeConfigurationName)
|
||||||
extendsFrom(implementationConfiguration)
|
extendsFrom(implementationConfiguration)
|
||||||
if (runtimeOnlyConfiguration != null)
|
if (runtimeOnlyConfiguration != null)
|
||||||
@@ -275,6 +278,7 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
|
|||||||
fun defineConfigurationsForCompilation(
|
fun defineConfigurationsForCompilation(
|
||||||
compilation: KotlinCompilation<*>
|
compilation: KotlinCompilation<*>
|
||||||
) {
|
) {
|
||||||
|
val project = compilation.target.project
|
||||||
val target = compilation.target
|
val target = compilation.target
|
||||||
val configurations = target.project.configurations
|
val configurations = target.project.configurations
|
||||||
|
|
||||||
@@ -319,6 +323,7 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
|
|||||||
val compileOnlyConfiguration = configurations.maybeCreate(compilation.compileOnlyConfigurationName).apply {
|
val compileOnlyConfiguration = configurations.maybeCreate(compilation.compileOnlyConfigurationName).apply {
|
||||||
isCanBeConsumed = false
|
isCanBeConsumed = false
|
||||||
setupAsLocalTargetSpecificConfigurationIfSupported(target)
|
setupAsLocalTargetSpecificConfigurationIfSupported(target)
|
||||||
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
isVisible = false
|
isVisible = false
|
||||||
isCanBeResolved = true // Needed for IDE import
|
isCanBeResolved = true // Needed for IDE import
|
||||||
description = "Compile only dependencies for $compilation."
|
description = "Compile only dependencies for $compilation."
|
||||||
@@ -330,6 +335,7 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
|
|||||||
isVisible = false
|
isVisible = false
|
||||||
isCanBeConsumed = false
|
isCanBeConsumed = false
|
||||||
attributes.attribute(USAGE_ATTRIBUTE, KotlinUsages.consumerApiUsage(compilation.target))
|
attributes.attribute(USAGE_ATTRIBUTE, KotlinUsages.consumerApiUsage(compilation.target))
|
||||||
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
description = "Compile classpath for $compilation."
|
description = "Compile classpath for $compilation."
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -359,6 +365,7 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
|
|||||||
isCanBeConsumed = false
|
isCanBeConsumed = false
|
||||||
isCanBeResolved = true
|
isCanBeResolved = true
|
||||||
attributes.attribute(USAGE_ATTRIBUTE, KotlinUsages.consumerRuntimeUsage(compilation.target))
|
attributes.attribute(USAGE_ATTRIBUTE, KotlinUsages.consumerRuntimeUsage(compilation.target))
|
||||||
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
description = "Runtime classpath of $compilation."
|
description = "Runtime classpath of $compilation."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -492,7 +499,10 @@ internal interface KotlinTargetWithTestsConfigurator<R : KotlinTargetTestRun<*>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal fun Project.usageByName(usageName: String): Usage =
|
internal fun Project.usageByName(usageName: String): Usage =
|
||||||
project.objects.named(Usage::class.java, usageName)
|
objects.named(Usage::class.java, usageName)
|
||||||
|
|
||||||
|
internal fun Project.categoryByName(categoryName: String): Category =
|
||||||
|
objects.named(Category::class.java, categoryName)
|
||||||
|
|
||||||
fun Configuration.usesPlatformOf(target: KotlinTarget): Configuration {
|
fun Configuration.usesPlatformOf(target: KotlinTarget): Configuration {
|
||||||
attributes.attribute(KotlinPlatformType.attribute, target.platformType)
|
attributes.attribute(KotlinPlatformType.attribute, target.platformType)
|
||||||
|
|||||||
+2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.plugin.sources
|
|||||||
import org.gradle.api.NamedDomainObjectFactory
|
import org.gradle.api.NamedDomainObjectFactory
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
|
import org.gradle.api.attributes.Category
|
||||||
import org.gradle.api.attributes.Usage
|
import org.gradle.api.attributes.Usage
|
||||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
@@ -87,6 +88,7 @@ internal class DefaultKotlinSourceSetFactory(
|
|||||||
project.configurations.maybeCreate(metadataName).apply {
|
project.configurations.maybeCreate(metadataName).apply {
|
||||||
attributes.attribute(KotlinPlatformType.attribute, KotlinPlatformType.common)
|
attributes.attribute(KotlinPlatformType.attribute, KotlinPlatformType.common)
|
||||||
attributes.attribute(Usage.USAGE_ATTRIBUTE, project.usageByName(KotlinUsages.KOTLIN_API))
|
attributes.attribute(Usage.USAGE_ATTRIBUTE, project.usageByName(KotlinUsages.KOTLIN_API))
|
||||||
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
isVisible = false
|
isVisible = false
|
||||||
isCanBeConsumed = false
|
isCanBeConsumed = false
|
||||||
|
|
||||||
|
|||||||
+3
@@ -10,6 +10,7 @@ import org.gradle.api.artifacts.FileCollectionDependency
|
|||||||
import org.gradle.api.artifacts.ResolvedArtifact
|
import org.gradle.api.artifacts.ResolvedArtifact
|
||||||
import org.gradle.api.artifacts.ResolvedDependency
|
import org.gradle.api.artifacts.ResolvedDependency
|
||||||
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
|
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
|
||||||
|
import org.gradle.api.attributes.Category
|
||||||
import org.gradle.api.attributes.Usage
|
import org.gradle.api.attributes.Usage
|
||||||
import org.gradle.api.initialization.IncludedBuild
|
import org.gradle.api.initialization.IncludedBuild
|
||||||
import org.gradle.api.internal.artifacts.DefaultProjectComponentIdentifier
|
import org.gradle.api.internal.artifacts.DefaultProjectComponentIdentifier
|
||||||
@@ -17,6 +18,7 @@ import org.gradle.api.tasks.*
|
|||||||
import org.gradle.api.tasks.bundling.Zip
|
import org.gradle.api.tasks.bundling.Zip
|
||||||
import org.gradle.configurationcache.extensions.serviceOf
|
import org.gradle.configurationcache.extensions.serviceOf
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.categoryByName
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName
|
import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName
|
||||||
@@ -166,6 +168,7 @@ internal class KotlinCompilationNpmResolver(
|
|||||||
|
|
||||||
all.usesPlatformOf(target)
|
all.usesPlatformOf(target)
|
||||||
all.attributes.attribute(Usage.USAGE_ATTRIBUTE, KotlinUsages.consumerRuntimeUsage(target))
|
all.attributes.attribute(Usage.USAGE_ATTRIBUTE, KotlinUsages.consumerRuntimeUsage(target))
|
||||||
|
all.attributes.attribute(Category.CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
all.isVisible = false
|
all.isVisible = false
|
||||||
all.isCanBeConsumed = false
|
all.isCanBeConsumed = false
|
||||||
all.isCanBeResolved = true
|
all.isCanBeResolved = true
|
||||||
|
|||||||
+6
-6
@@ -8,6 +8,8 @@ package org.jetbrains.kotlin.gradle.targets.metadata
|
|||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
import org.gradle.api.artifacts.component.ComponentIdentifier
|
import org.gradle.api.artifacts.component.ComponentIdentifier
|
||||||
|
import org.gradle.api.attributes.Category
|
||||||
|
import org.gradle.api.attributes.Category.CATEGORY_ATTRIBUTE
|
||||||
import org.gradle.api.attributes.Usage.USAGE_ATTRIBUTE
|
import org.gradle.api.attributes.Usage.USAGE_ATTRIBUTE
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
import org.gradle.api.internal.component.SoftwareComponentInternal
|
import org.gradle.api.internal.component.SoftwareComponentInternal
|
||||||
@@ -16,8 +18,6 @@ import org.gradle.api.tasks.TaskProvider
|
|||||||
import org.gradle.api.tasks.bundling.Jar
|
import org.gradle.api.tasks.bundling.Jar
|
||||||
import org.gradle.api.tasks.bundling.Zip
|
import org.gradle.api.tasks.bundling.Zip
|
||||||
import org.jetbrains.kotlin.gradle.dsl.*
|
import org.jetbrains.kotlin.gradle.dsl.*
|
||||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.CompilationSourceSetUtil.compilationsBySourceSets
|
import org.jetbrains.kotlin.gradle.plugin.mpp.CompilationSourceSetUtil.compilationsBySourceSets
|
||||||
@@ -97,6 +97,7 @@ class KotlinMetadataTargetConfigurator :
|
|||||||
|
|
||||||
target.project.configurations.getByName(target.apiElementsConfigurationName).run {
|
target.project.configurations.getByName(target.apiElementsConfigurationName).run {
|
||||||
attributes.attribute(USAGE_ATTRIBUTE, target.project.usageByName(KotlinUsages.KOTLIN_METADATA))
|
attributes.attribute(USAGE_ATTRIBUTE, target.project.usageByName(KotlinUsages.KOTLIN_METADATA))
|
||||||
|
attributes.attribute(CATEGORY_ATTRIBUTE, target.project.categoryByName(Category.LIBRARY))
|
||||||
/** Note: to add this artifact here is enough to avoid duplicate artifacts in this configuration: the default artifact
|
/** Note: to add this artifact here is enough to avoid duplicate artifacts in this configuration: the default artifact
|
||||||
* won't be added (later) if there's already an artifact in the configuration, see
|
* won't be added (later) if there's already an artifact in the configuration, see
|
||||||
* [KotlinOnlyTargetConfigurator.configureArchivesAndComponent] */
|
* [KotlinOnlyTargetConfigurator.configureArchivesAndComponent] */
|
||||||
@@ -271,6 +272,7 @@ class KotlinMetadataTargetConfigurator :
|
|||||||
|
|
||||||
usesPlatformOf(target)
|
usesPlatformOf(target)
|
||||||
attributes.attribute(USAGE_ATTRIBUTE, project.usageByName(KotlinUsages.KOTLIN_METADATA))
|
attributes.attribute(USAGE_ATTRIBUTE, project.usageByName(KotlinUsages.KOTLIN_METADATA))
|
||||||
|
attributes.attribute(CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -451,10 +453,8 @@ class KotlinMetadataTargetConfigurator :
|
|||||||
setupAsPublicConfigurationIfSupported(target)
|
setupAsPublicConfigurationIfSupported(target)
|
||||||
usesPlatformOf(target)
|
usesPlatformOf(target)
|
||||||
|
|
||||||
attributes.attribute(
|
attributes.attribute(USAGE_ATTRIBUTE, KotlinUsages.producerApiUsage(target))
|
||||||
USAGE_ATTRIBUTE,
|
attributes.attribute(CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
KotlinUsages.producerApiUsage(target)
|
|
||||||
) // 'kotlin-api' usage
|
|
||||||
|
|
||||||
val commonMainApiConfiguration = project.sourceSetDependencyConfigurationByScope(
|
val commonMainApiConfiguration = project.sourceSetDependencyConfigurationByScope(
|
||||||
project.kotlinExtension.sourceSets.getByName(KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME),
|
project.kotlinExtension.sourceSets.getByName(KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME),
|
||||||
|
|||||||
+3
@@ -14,6 +14,7 @@ import org.gradle.api.artifacts.Configuration
|
|||||||
import org.gradle.api.artifacts.Dependency
|
import org.gradle.api.artifacts.Dependency
|
||||||
import org.gradle.api.attributes.Attribute
|
import org.gradle.api.attributes.Attribute
|
||||||
import org.gradle.api.attributes.AttributeContainer
|
import org.gradle.api.attributes.AttributeContainer
|
||||||
|
import org.gradle.api.attributes.Category
|
||||||
import org.gradle.api.attributes.Usage
|
import org.gradle.api.attributes.Usage
|
||||||
import org.gradle.api.attributes.Usage.USAGE_ATTRIBUTE
|
import org.gradle.api.attributes.Usage.USAGE_ATTRIBUTE
|
||||||
import org.gradle.api.internal.artifacts.ArtifactAttributes
|
import org.gradle.api.internal.artifacts.ArtifactAttributes
|
||||||
@@ -339,6 +340,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
|||||||
isCanBeResolved = true
|
isCanBeResolved = true
|
||||||
usesPlatformOf(target)
|
usesPlatformOf(target)
|
||||||
attributes.attribute(USAGE_ATTRIBUTE, KotlinUsages.consumerApiUsage(target))
|
attributes.attribute(USAGE_ATTRIBUTE, KotlinUsages.consumerApiUsage(target))
|
||||||
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -350,6 +352,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
|||||||
isCanBeResolved = true
|
isCanBeResolved = true
|
||||||
usesPlatformOf(target)
|
usesPlatformOf(target)
|
||||||
attributes.attribute(USAGE_ATTRIBUTE, KotlinUsages.consumerApiUsage(target))
|
attributes.attribute(USAGE_ATTRIBUTE, KotlinUsages.consumerApiUsage(target))
|
||||||
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
description = "Dependenceis to be exported in framework ${framework.name} for target ${target.targetName}"
|
description = "Dependenceis to be exported in framework ${framework.name} for target ${target.targetName}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-4
@@ -10,14 +10,11 @@ import org.gradle.api.artifacts.Configuration
|
|||||||
import org.gradle.api.attributes.*
|
import org.gradle.api.attributes.*
|
||||||
import org.gradle.api.internal.artifacts.ArtifactAttributes
|
import org.gradle.api.internal.artifacts.ArtifactAttributes
|
||||||
import org.gradle.api.tasks.TaskProvider
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.jetbrains.kotlin.gradle.plugin.CInteropSettings
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinNativeTargetConfigurator.NativeArtifactFormat
|
import org.jetbrains.kotlin.gradle.plugin.KotlinNativeTargetConfigurator.NativeArtifactFormat
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.DefaultCInteropSettings
|
import org.jetbrains.kotlin.gradle.plugin.mpp.DefaultCInteropSettings
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeCompilation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||||
import org.jetbrains.kotlin.gradle.plugin.setupAsPublicConfigurationIfSupported
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.usesPlatformOf
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropKlibLibraryElements.cinteropKlibLibraryElements
|
import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropKlibLibraryElements.cinteropKlibLibraryElements
|
||||||
import org.jetbrains.kotlin.gradle.tasks.CInteropProcess
|
import org.jetbrains.kotlin.gradle.tasks.CInteropProcess
|
||||||
|
|
||||||
@@ -53,6 +50,7 @@ internal fun Project.locateOrCreateCInteropDependencyConfiguration(
|
|||||||
usesPlatformOf(target)
|
usesPlatformOf(target)
|
||||||
attributes.attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, cinteropKlibLibraryElements())
|
attributes.attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, cinteropKlibLibraryElements())
|
||||||
attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage::class.java, KotlinUsages.KOTLIN_API))
|
attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage::class.java, KotlinUsages.KOTLIN_API))
|
||||||
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
description = "Dependencies for cinterop '${cinterop.name}' (compilation '${compilation.name}')."
|
description = "Dependencies for cinterop '${cinterop.name}' (compilation '${compilation.name}')."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -69,6 +67,7 @@ internal fun Project.locateOrCreateCInteropApiElementsConfiguration(target: Kotl
|
|||||||
usesPlatformOf(target)
|
usesPlatformOf(target)
|
||||||
attributes.attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, cinteropKlibLibraryElements())
|
attributes.attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, cinteropKlibLibraryElements())
|
||||||
attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage::class.java, KotlinUsages.KOTLIN_API))
|
attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage::class.java, KotlinUsages.KOTLIN_API))
|
||||||
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, project.categoryByName(Category.LIBRARY))
|
||||||
attributes.attribute(ArtifactAttributes.ARTIFACT_FORMAT, NativeArtifactFormat.KLIB)
|
attributes.attribute(ArtifactAttributes.ARTIFACT_FORMAT, NativeArtifactFormat.KLIB)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user