[Gradle] TCS:Gradle Sync: Initial support for multiplatform composite builds

KT-52172
This commit is contained in:
Sebastian Sellmair
2022-12-08 14:36:15 +01:00
committed by Space Team
parent d4177f167b
commit 90f8edbe80
2 changed files with 5 additions and 2 deletions
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.gradle.plugin.ide.dependencyResolvers
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryCoordinates
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependency
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinResolvedBinaryDependency
@@ -20,6 +21,7 @@ import org.jetbrains.kotlin.tooling.core.mutableExtrasOf
internal object IdeTransformedMetadataDependencyResolver : IdeDependencyResolver {
override fun resolve(sourceSet: KotlinSourceSet): Set<IdeaKotlinDependency> =
sourceSet.resolveMetadata<ChooseVisibleSourceSets>()
.filter { resolution -> resolution.dependency.id !is ProjectComponentIdentifier }
.flatMap { resolution -> resolve(sourceSet, resolution) }
.toSet()
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.gradle.plugin.ide.dependencyResolvers
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependency
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceCoordinates
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceDependency
@@ -25,12 +26,12 @@ internal object IdeVisibleMultiplatformSourceDependencyResolver : IdeDependencyR
private fun resolveSourceDependencies(
resolution: MetadataDependencyResolution.ChooseVisibleSourceSets
): Iterable<IdeaKotlinDependency> {
val project = resolution.projectDependency ?: return emptyList()
val projectComponentIdentifier = resolution.dependency.id as? ProjectComponentIdentifier ?: return emptyList()
return resolution.allVisibleSourceSetNames.map { visibleSourceSetName ->
IdeaKotlinSourceDependency(
type = IdeaKotlinSourceDependency.Type.Regular,
coordinates = IdeaKotlinSourceCoordinates(
project = IdeaKotlinProjectCoordinates(project),
project = IdeaKotlinProjectCoordinates(projectComponentIdentifier),
sourceSetName = visibleSourceSetName
)
)