diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GradleProjectModuleBuilder.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GradleProjectModuleBuilder.kt index 010dade2c5f..6d6735e9f29 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GradleProjectModuleBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GradleProjectModuleBuilder.kt @@ -1,4 +1,4 @@ -/* +/* * Copyright 2010-2020 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. */ @@ -12,7 +12,6 @@ import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.ModuleDependency import org.gradle.api.artifacts.ProjectDependency import org.gradle.api.artifacts.result.ResolvedComponentResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.gradle.api.attributes.Attribute import org.gradle.api.attributes.AttributeContainer import org.jetbrains.kotlin.gradle.dsl.* @@ -288,11 +287,13 @@ class GradleModuleVariantResolver(val project: Project) : ModuleVariantResolver val dependencyModuleId = ModuleIds.fromComponent(project, component) // FIXME check composite builds, it's likely that resolvedVariantProvider fails on them? - val variantName = - resolvedVariantProvider.getResolvedVariantName(dependencyModuleId, compileClasspath) - ?.let(::kotlinVariantNameFromPublishedVariantName) + val resolvedGradleVariantName = resolvedVariantProvider.getResolvedVariantName(dependencyModuleId, compileClasspath) + val kotlinVariantName = when (dependencyModule) { + is KotlinGradleModule -> dependencyModule.variants.single { resolvedGradleVariantName in it.gradleVariantNames }.name + else -> resolvedGradleVariantName?.let(::kotlinVariantNameFromPublishedVariantName) + } - val resultVariant = dependencyModule.variants.singleOrNull { it.fragmentName == variantName } + val resultVariant = dependencyModule.variants.singleOrNull { it.fragmentName == kotlinVariantName } return if (resultVariant == null) VariantResolution.NoVariantMatch(requestingVariant, dependencyModule) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyGraphResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyGraphResolver.kt index 65a60896980..dfbf6364e4b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyGraphResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyGraphResolver.kt @@ -59,7 +59,7 @@ class GradleKotlinDependencyGraphResolver( (module as? ExternalImportedKotlinModule) ?.takeIf { it.hasLegacyMetadataModule } ?.let { (component.dependencies.singleOrNull() as? ResolvedDependencyResult)?.selected } - ?: component + ?: component val resolvedComponentDependencies = componentContainingTransitiveDependencies.dependencies .filterIsInstance() diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/abstractVariantFactories.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/abstractVariantFactories.kt index 6a38ee85c1a..1db5b3e7e7b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/abstractVariantFactories.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/abstractVariantFactories.kt @@ -13,6 +13,7 @@ import org.gradle.api.component.SoftwareComponentFactory import org.gradle.api.internal.project.ProjectInternal import org.gradle.api.publish.PublishingExtension import org.gradle.api.publish.maven.MavenPublication +import org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.CalculatedCapability @@ -171,6 +172,7 @@ abstract class AbstractKotlinGradleRuntimePublishedVariantFactory