From b7d79cc146448379468b868673329d055026f220 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Tue, 13 Mar 2018 17:14:08 +0300 Subject: [PATCH] Gradle: Do not resolve sourcesets in projects with Android module --- .../KotlinGradleProjectResolverExtension.kt | 2 +- .../MultiplatformProjectImportingTest.kt | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt index 5cd8405f962..7cf30d4b199 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt @@ -194,7 +194,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension() gradleModel: KotlinGradleModel ) { val implementedModules = gradleModel.implements.mapNotNull { findModuleById(ideProject, it) } - if (resolverCtx.isResolveModulePerSourceSet) { + if (useModulePerSourceSet()) { val dependentSourceSets = dependentModule.getSourceSetsMap() val implementedSourceSetMaps = implementedModules.map { it.getSourceSetsMap() } for ((sourceSetName, dependentSourceSet) in dependentSourceSets) { diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/MultiplatformProjectImportingTest.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/MultiplatformProjectImportingTest.kt index 272110a2bac..2d61be4149e 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/MultiplatformProjectImportingTest.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/MultiplatformProjectImportingTest.kt @@ -20,6 +20,7 @@ import com.intellij.openapi.roots.DependencyScope import com.intellij.util.PathUtil import junit.framework.TestCase import org.jetbrains.kotlin.idea.codeInsight.gradle.GradleImportingTestCase +import org.jetbrains.kotlin.idea.codeInsight.gradle.facetSettings import org.jetbrains.kotlin.idea.facet.KotlinFacet import org.jetbrains.kotlin.test.KotlinTestUtils import org.junit.Test @@ -577,12 +578,24 @@ class MultiplatformProjectImportingTest : GradleImportingTestCase() { """ ) + val isResolveModulePerSourceSet = getCurrentExternalProjectSettings().isResolveModulePerSourceSet + try { + currentExternalProjectSettings.isResolveModulePerSourceSet = true + importProject() - importProject() + assertModuleModuleDepScope("project3", "project2", DependencyScope.COMPILE) + assertModuleModuleDepScope("project3", "project1", DependencyScope.COMPILE) + TestCase.assertEquals(listOf("project1"), facetSettings("project2").implementedModuleNames) - assertModuleModuleDepScope("project3", "project2", DependencyScope.COMPILE) - assertModuleModuleDepScope("project3", "project1", DependencyScope.COMPILE) + currentExternalProjectSettings.isResolveModulePerSourceSet = false + importProject() + assertModuleModuleDepScope("project3", "project2", DependencyScope.COMPILE) + assertModuleModuleDepScope("project3", "project1", DependencyScope.COMPILE) + TestCase.assertEquals(listOf("project1"), facetSettings("project2").implementedModuleNames) + } finally { + currentExternalProjectSettings.isResolveModulePerSourceSet = isResolveModulePerSourceSet + } } @Test