Take dependsOn-graph from corresponding property for MPP.M3

This commit is contained in:
Dmitry Savvinov
2019-09-05 16:08:49 +03:00
parent 958a7d9315
commit 182f5fafad
@@ -55,25 +55,41 @@ val Module.implementingModules: List<Module>
get() = cacheInvalidatingOnRootModifications {
val moduleManager = ModuleManager.getInstance(project)
if (isNewMPPModule) {
moduleManager.getModuleDependentModules(this).filter {
when (facetSettings?.mppVersion) {
null -> emptyList()
KotlinMultiplatformVersion.M3 -> moduleManager.modules.filter { it.facetSettings?.dependsOnModuleNames?.contains(name) == true }
KotlinMultiplatformVersion.M2 -> moduleManager.getModuleDependentModules(this).filter {
it.isNewMPPModule && it.externalProjectId == externalProjectId
}
} else {
moduleManager.modules.filter { name in it.findOldFashionedImplementedModuleNames() }
KotlinMultiplatformVersion.M1 -> moduleManager.modules.filter { name in it.findOldFashionedImplementedModuleNames() }
}
}
val Module.implementedModules: List<Module>
get() = cacheInvalidatingOnRootModifications {
if (isNewMPPModule) {
rootManager.dependencies.filter {
// TODO: remove additional android check
it.isNewMPPModule && it.platform.isCommon() && it.externalProjectId == externalProjectId && (isAndroidModule() || it.isTestModule == isTestModule)
val facetSettings = facetSettings
when (facetSettings?.mppVersion) {
null -> emptyList()
KotlinMultiplatformVersion.M3 -> {
val modelsProvider = IdeModelsProviderImpl(project)
facetSettings.dependsOnModuleNames.mapNotNull { modelsProvider.findIdeModule(it) }
}
KotlinMultiplatformVersion.M2 -> {
rootManager.dependencies.filter {
// TODO: remove additional android check
it.isNewMPPModule && it.platform.isCommon() && it.externalProjectId == externalProjectId && (isAndroidModule() || it.isTestModule == isTestModule)
}
}
KotlinMultiplatformVersion.M1 -> {
val modelsProvider = IdeModelsProviderImpl(project)
findOldFashionedImplementedModuleNames().mapNotNull { modelsProvider.findIdeModule(it) }
}
} else {
val modelsProvider = IdeModelsProviderImpl(project)
findOldFashionedImplementedModuleNames().mapNotNull { modelsProvider.findIdeModule(it) }
}
}