Minor. Simplify generation of substituted dependencies

This commit is contained in:
Dmitriy Dolovov
2020-03-17 13:42:09 +07:00
parent d84f528a47
commit 2d8bec19c0
2 changed files with 9 additions and 9 deletions
@@ -513,8 +513,7 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtensionComp
val processedModuleIds = HashSet<String>() val processedModuleIds = HashSet<String>()
processCompilations(gradleModule, mppModel, ideModule, resolverCtx) { dataNode, compilation -> processCompilations(gradleModule, mppModel, ideModule, resolverCtx) { dataNode, compilation ->
if (processedModuleIds.add(getKotlinModuleId(gradleModule, compilation, resolverCtx))) { if (processedModuleIds.add(getKotlinModuleId(gradleModule, compilation, resolverCtx))) {
val substitutedDependencies = val substitutedDependencies = substitutor.substituteDependencies(compilation)
substitutor.substituteDependencies(compilation.dependencies.mapNotNull { mppModel.dependencyMap[it] })
buildDependencies( buildDependencies(
resolverCtx, resolverCtx,
sourceSetMap, sourceSetMap,
@@ -595,9 +594,9 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtensionComp
addDependency(fromDataNode, toDataNode, dependeeSourceSet.isTestModule) addDependency(fromDataNode, toDataNode, dependeeSourceSet.isTestModule)
} }
if (processedModuleIds.add(getKotlinModuleId(gradleModule, sourceSet, resolverCtx))) { if (processedModuleIds.add(getKotlinModuleId(gradleModule, sourceSet, resolverCtx))) {
val mergedDependencies = LinkedHashSet<KotlinDependency>().apply { val mergedSubstitutedDependencies = LinkedHashSet<KotlinDependency>().apply {
addAll(sourceSet.dependencies.mapNotNull { mppModel.dependencyMap[it] }) addAll(substitutor.substituteDependencies(sourceSet))
dependeeSourceSets.flatMapTo(this) { it.dependencies.mapNotNull { mppModel.dependencyMap[it] } } dependeeSourceSets.flatMapTo(this) { substitutor.substituteDependencies(it) }
if (mppModel.extraFeatures.isNativeDependencyPropagationEnabled if (mppModel.extraFeatures.isNativeDependencyPropagationEnabled
&& mppModel.extraFeatures.isHMPPEnabled && mppModel.extraFeatures.isHMPPEnabled
&& sourceSet.actualPlatforms.getSinglePlatform() == KotlinPlatform.NATIVE && sourceSet.actualPlatforms.getSinglePlatform() == KotlinPlatform.NATIVE
@@ -607,14 +606,12 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtensionComp
} }
} }
} }
val substitutedDependencies =
substitutor.substituteDependencies(mergedDependencies)
buildDependencies( buildDependencies(
resolverCtx, resolverCtx,
sourceSetMap, sourceSetMap,
artifactsMap, artifactsMap,
fromDataNode, fromDataNode,
preprocessDependencies(substitutedDependencies), preprocessDependencies(mergedSubstitutedDependencies),
ideProject ideProject
) )
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
@@ -623,6 +620,9 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtensionComp
} }
} }
private fun KotlinNativeLibrariesDependencySubstitutor.substituteDependencies(kotlinModule: KotlinModule) =
substituteDependencies(kotlinModule.dependencies.mapNotNull { mppModel.dependencyMap[it] })
// We can't really commonize native platform libraries yet. // We can't really commonize native platform libraries yet.
// But APIs for different targets may be very similar. // But APIs for different targets may be very similar.
// E.g. ios_arm64 and ios_x64 have almost identical platform libraries. // E.g. ios_arm64 and ios_x64 have almost identical platform libraries.
@@ -21,7 +21,7 @@ import java.io.File
// KT-29613, KT-29783 // KT-29613, KT-29783
internal class KotlinNativeLibrariesDependencySubstitutor( internal class KotlinNativeLibrariesDependencySubstitutor(
mppModel: KotlinMPPGradleModel, val mppModel: KotlinMPPGradleModel,
private val gradleModule: IdeaModule, private val gradleModule: IdeaModule,
private val resolverCtx: ProjectResolverContext private val resolverCtx: ProjectResolverContext
) { ) {