AndroidDependencyResolver: when operating without Android IDE plugin, don't duplicate dependencies for Android sourcesets

This commit is contained in:
Vyacheslav Karpukhin
2021-02-19 00:35:22 +01:00
parent b5f9b1dfc0
commit 3ce00f6eb4
@@ -32,6 +32,9 @@ import org.jetbrains.plugins.gradle.tooling.util.SourceSetCachedFinder
import org.jetbrains.plugins.gradle.tooling.util.resolve.DependencyResolverImpl
import java.io.File
import java.lang.reflect.Method
import kotlin.collections.ArrayList
import kotlin.collections.HashMap
import kotlin.collections.LinkedHashSet
class KotlinMPPGradleModelBuilder : ModelBuilderService {
override fun getErrorMessageBuilder(project: Project, e: Exception): ErrorMessageBuilder {
@@ -615,6 +618,13 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
androidDeps: Map<String, List<Any>>?
): List<KotlinDependency> {
return ArrayList<KotlinDependency>().apply {
buildAndroidSourceSetDependencies(androidDeps, gradleSourceSet).let {
if (it.isNotEmpty()) {
this += it
return@apply
}
}
val transformationBuilder = MetadataDependencyTransformationBuilder(gradleSourceSet)
this += buildDependencies(
gradleSourceSet, dependencyResolver, "getApiMetadataConfigurationName", "COMPILE", project, transformationBuilder
@@ -628,8 +638,6 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
this += buildDependencies(
gradleSourceSet, dependencyResolver, "getRuntimeOnlyMetadataConfigurationName", "RUNTIME", project, transformationBuilder
).onlyNewDependencies(this)
this += buildAndroidSourceSetDependencies(androidDeps, gradleSourceSet)
}
}