From 59f6c0c2730a9304e2b633f33c5c0af41152e9d1 Mon Sep 17 00:00:00 2001 From: Konstantin Tskhovrebov Date: Fri, 24 Jul 2020 16:32:27 +0300 Subject: [PATCH] Add flag for avoid double MPP gradle module resolve. --- .../idea/configuration/KotlinMPPGradleProjectResolver.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt index e2b778c6164..ad5f78a451c 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt @@ -44,6 +44,7 @@ import org.jetbrains.kotlin.idea.configuration.klib.KotlinNativeLibrariesDepende import org.jetbrains.kotlin.idea.configuration.klib.KotlinNativeLibrariesFixer import org.jetbrains.kotlin.idea.configuration.klib.KotlinNativeLibraryNameUtil.KOTLIN_NATIVE_LIBRARY_PREFIX_PLUS_SPACE import org.jetbrains.kotlin.idea.platform.IdePlatformKindTooling +import org.jetbrains.kotlin.idea.util.NotNullableCopyableDataNodeUserDataProperty import org.jetbrains.kotlin.util.removeSuffixIfPresent import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult import org.jetbrains.plugins.gradle.model.* @@ -194,6 +195,10 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtensionComp Key.create /* module ids*/>>("gradleMPPArtifactsMap") val proxyObjectCloningCache = WeakHashMap() + //flag for avoid double resolve from KotlinMPPGradleProjectResolver and KotlinAndroidMPPGradleProjectResolver + private var DataNode.isMppDataInitialized + by NotNullableCopyableDataNodeUserDataProperty(Key.create("IS_MPP_DATA_INITIALIZED"), false) + private var nativeDebugAdvertised = false private val androidPluginPresent = PluginManager.getPlugin(PluginId.findId("org.jetbrains.android"))?.isEnabled ?: false @@ -265,6 +270,8 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtensionComp projectDataNode: DataNode, resolverCtx: ProjectResolverContext ) { + if (mainModuleNode.isMppDataInitialized) return + val mainModuleData = mainModuleNode.data val mainModuleConfigPath = mainModuleData.linkedExternalProjectPath val mainModuleFileDirectoryPath = mainModuleData.moduleFileDirectoryPath @@ -272,6 +279,7 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtensionComp val externalProject = resolverCtx.getExtraProject(gradleModule, ExternalProject::class.java) val mppModel = resolverCtx.getMppModel(gradleModule) if (mppModel == null || externalProject == null) return + mainModuleNode.isMppDataInitialized = true val jdkName = gradleModule.jdkNameIfAny