[Gradle] IdeaKotlinBinaryCoordinates: Include 'Capabilities'

... in order to differentiate between feature variants of
published libraries (e.g. testFixtures)

^KT-60053 In Progress
This commit is contained in:
Sebastian Sellmair
2023-07-10 14:40:49 +02:00
committed by Space Team
parent 9732651264
commit e3f0fa4257
16 changed files with 1879 additions and 21 deletions
@@ -8,7 +8,8 @@ package org.jetbrains.kotlin.gradle.plugin.ide
import org.gradle.api.Project
import org.gradle.api.artifacts.component.ModuleComponentIdentifier
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
import org.jetbrains.kotlin.gradle.ExternalKotlinTargetApi
import org.gradle.api.capabilities.Capability
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryCapability
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryCoordinates
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinProjectCoordinates
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceCoordinates
@@ -41,11 +42,23 @@ internal fun IdeaKotlinSourceCoordinates(sourceSet: KotlinSourceSet): IdeaKotlin
)
}
internal fun IdeaKotlinBinaryCoordinates(identifier: ModuleComponentIdentifier): IdeaKotlinBinaryCoordinates {
internal fun IdeaKotlinBinaryCoordinates(
identifier: ModuleComponentIdentifier,
capabilities: List<Capability> = emptyList(),
): IdeaKotlinBinaryCoordinates {
return IdeaKotlinBinaryCoordinates(
group = identifier.group,
module = identifier.module,
version = identifier.version
version = identifier.version,
capabilities = capabilities.map(::IdeaKotlinBinaryCapability).toSet()
)
}
internal fun IdeaKotlinBinaryCapability(capability: Capability): IdeaKotlinBinaryCapability {
return IdeaKotlinBinaryCapability(
group = capability.group,
name = capability.name,
version = capability.version
)
}