diff --git a/idea/idea-android/src/org/jetbrains/kotlin/android/configure/KotlinAndroidGradleMPPModuleDataService.kt b/idea/idea-android/src/org/jetbrains/kotlin/android/configure/KotlinAndroidGradleMPPModuleDataService.kt index 1d47099f0ad..001e806459e 100644 --- a/idea/idea-android/src/org/jetbrains/kotlin/android/configure/KotlinAndroidGradleMPPModuleDataService.kt +++ b/idea/idea-android/src/org/jetbrains/kotlin/android/configure/KotlinAndroidGradleMPPModuleDataService.kt @@ -22,6 +22,7 @@ import com.intellij.openapi.module.Module import com.intellij.openapi.project.Project import com.intellij.openapi.roots.DependencyScope import com.intellij.openapi.roots.ModifiableRootModel +import com.intellij.openapi.util.registry.Registry import com.intellij.openapi.vfs.VfsUtil import com.intellij.util.SmartList import com.intellij.util.containers.stream @@ -160,6 +161,10 @@ class KotlinAndroidGradleMPPModuleDataService : AbstractProjectDataService>.filterByPlatform(platform: KotlinPlatform) = this.filter { + it.kotlinSourceSet?.actualPlatforms?.supports(platform) ?: false + } + private fun addExtraDependeeModules( moduleNode: DataNode, projectNode: DataNode, @@ -167,6 +172,7 @@ class KotlinAndroidGradleMPPModuleDataService : AbstractProjectDataService>() .apply { - addIfNotNull( - (if (isAndroidModule) relevantNodes.firstByPlatformOrNull(KotlinPlatform.ANDROID) else null) - ?: relevantNodes.firstByPlatformOrNull(KotlinPlatform.JVM) - ) - addIfNotNull( - relevantNodes.firstOrNull { - (it.kotlinSourceSet?.actualPlatforms?.supports(KotlinPlatform.COMMON) ?: false) && it.kotlinSourceSet?.kotlinModule?.name == commonSourceSetName + if (legacyMode) { + addIfNotNull( + (if (isAndroidModule) relevantNodes.firstByPlatformOrNull(KotlinPlatform.ANDROID) else null) + ?: relevantNodes.firstByPlatformOrNull(KotlinPlatform.JVM) + ) + addIfNotNull( + relevantNodes.firstOrNull { + (it.kotlinSourceSet?.actualPlatforms?.supports(KotlinPlatform.COMMON) ?: false) && it.kotlinSourceSet?.kotlinModule?.name == commonSourceSetName + } + ) + } else { + val androidSourceSets = if (isAndroidModule) relevantNodes.filterByPlatform(KotlinPlatform.ANDROID) else emptyList() + if (androidSourceSets.isEmpty()) { + addAll(relevantNodes.filterByPlatform(KotlinPlatform.JVM)) + } else { + addAll(androidSourceSets) } - ) + addAll( + relevantNodes.filter { + (it.kotlinSourceSet?.actualPlatforms?.supports(KotlinPlatform.COMMON) ?: false) && it.kotlinSourceSet?.kotlinModule?.name == commonSourceSetName + } + ) + } } val testKotlinModules = diff --git a/idea/resources/META-INF/extensions/ide.xml b/idea/resources/META-INF/extensions/ide.xml index 2a1b860c127..4b4a33a41df 100644 --- a/idea/resources/META-INF/extensions/ide.xml +++ b/idea/resources/META-INF/extensions/ide.xml @@ -100,5 +100,10 @@ description="Enable manual editing of MPP target platforms" defaultValue="false" restartRequired="false"/> + + diff --git a/idea/resources/META-INF/extensions/ide.xml.183 b/idea/resources/META-INF/extensions/ide.xml.183 index 709fcb85ad8..bcc3a7cf7fe 100644 --- a/idea/resources/META-INF/extensions/ide.xml.183 +++ b/idea/resources/META-INF/extensions/ide.xml.183 @@ -104,5 +104,10 @@ description="Use new Java to Kotlin Converter (experimental)" defaultValue="true" restartRequired="false"/> + + diff --git a/idea/resources/META-INF/extensions/ide.xml.as33 b/idea/resources/META-INF/extensions/ide.xml.as33 index 692b205b38c..cae42c8e83a 100644 --- a/idea/resources/META-INF/extensions/ide.xml.as33 +++ b/idea/resources/META-INF/extensions/ide.xml.as33 @@ -96,5 +96,10 @@ description="Use new Java to Kotlin Converter (experimental)" defaultValue="true" restartRequired="false"/> + + diff --git a/idea/resources/META-INF/extensions/ide.xml.as34 b/idea/resources/META-INF/extensions/ide.xml.as34 index 8becb0e1130..eb863930400 100644 --- a/idea/resources/META-INF/extensions/ide.xml.as34 +++ b/idea/resources/META-INF/extensions/ide.xml.as34 @@ -95,5 +95,10 @@ description="Use new Java to Kotlin Converter (experimental)" defaultValue="true" restartRequired="false"/> + +