From b315e0c11359f739bc0983397e409e224753839d Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Fri, 9 Feb 2018 20:47:13 +0300 Subject: [PATCH] Gradle: Fix dependency import when "module per sourceset" is disabled #KT-22360 Fixed --- .../KotlinGradleProjectResolverExtension.kt | 8 +++- .../MultiplatformProjectImportingTest.kt | 46 ++++++++++++------- 2 files changed, 37 insertions(+), 17 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 d03291288c0..174586cffb7 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 @@ -161,6 +161,10 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension() } } + if (!useModulePerSourceSet()) { + super.populateModuleDependencies(gradleModule, ideModule, ideProject) + } + addTransitiveDependenciesOnImplementedModules() ideModule.isResolved = true @@ -170,7 +174,9 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension() ideModule.platformPluginId = gradleModel.platformPluginId addImplementedModuleNames(ideModule, ideProject, gradleModel) - super.populateModuleDependencies(gradleModule, ideModule, ideProject) + if (useModulePerSourceSet()) { + super.populateModuleDependencies(gradleModule, ideModule, ideProject) + } } private fun addImplementedModuleNames( 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 4b9f769b37d..18f7aa3b180 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/MultiplatformProjectImportingTest.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/MultiplatformProjectImportingTest.kt @@ -367,29 +367,43 @@ class MultiplatformProjectImportingTest : GradleImportingTestCase() { } """) - importProject() + val isResolveModulePerSourceSet = getCurrentExternalProjectSettings().isResolveModulePerSourceSet - assertModuleModuleDepScope("project1_test", "project1_main", DependencyScope.COMPILE) + try { + currentExternalProjectSettings.isResolveModulePerSourceSet = true + importProject() - assertModuleModuleDepScope("project2_main", "project1_main", DependencyScope.COMPILE) + assertModuleModuleDepScope("project1_test", "project1_main", DependencyScope.COMPILE) - assertModuleModuleDepScope("project2_test", "project2_main", DependencyScope.COMPILE) - assertModuleModuleDepScope("project2_test", "project1_test", DependencyScope.COMPILE) - assertModuleModuleDepScope("project2_test", "project1_main", DependencyScope.COMPILE) + assertModuleModuleDepScope("project2_main", "project1_main", DependencyScope.COMPILE) - assertModuleModuleDepScope("project2_custom", "project1_custom", DependencyScope.COMPILE) + assertModuleModuleDepScope("project2_test", "project2_main", DependencyScope.COMPILE) + assertModuleModuleDepScope("project2_test", "project1_test", DependencyScope.COMPILE) + assertModuleModuleDepScope("project2_test", "project1_main", DependencyScope.COMPILE) - assertModuleModuleDepScope("project3_main", "project2_main", DependencyScope.COMPILE) - assertModuleModuleDepScope("project3_main", "project1_main", DependencyScope.COMPILE) + assertModuleModuleDepScope("project2_custom", "project1_custom", DependencyScope.COMPILE) - assertModuleModuleDepScope("project3_test", "project3_main", DependencyScope.COMPILE) - assertModuleModuleDepScope("project3_test", "project2_test", DependencyScope.COMPILE) - assertModuleModuleDepScope("project3_test", "project2_main", DependencyScope.COMPILE) - assertModuleModuleDepScope("project3_test", "project1_test", DependencyScope.COMPILE) - assertModuleModuleDepScope("project3_test", "project1_main", DependencyScope.COMPILE) + assertModuleModuleDepScope("project3_main", "project2_main", DependencyScope.COMPILE) + assertModuleModuleDepScope("project3_main", "project1_main", DependencyScope.COMPILE) - assertModuleModuleDepScope("project3_custom", "project1_custom", DependencyScope.COMPILE) - assertModuleModuleDepScope("project3_custom", "project2_main", DependencyScope.COMPILE) + assertModuleModuleDepScope("project3_test", "project3_main", DependencyScope.COMPILE) + assertModuleModuleDepScope("project3_test", "project2_test", DependencyScope.COMPILE) + assertModuleModuleDepScope("project3_test", "project2_main", DependencyScope.COMPILE) + assertModuleModuleDepScope("project3_test", "project1_test", DependencyScope.COMPILE) + assertModuleModuleDepScope("project3_test", "project1_main", DependencyScope.COMPILE) + + assertModuleModuleDepScope("project3_custom", "project1_custom", DependencyScope.COMPILE) + assertModuleModuleDepScope("project3_custom", "project2_main", DependencyScope.COMPILE) + + currentExternalProjectSettings.isResolveModulePerSourceSet = false + importProject() + + assertModuleModuleDepScope("project2", "project1", DependencyScope.COMPILE) + assertModuleModuleDepScope("project3", "project2", DependencyScope.TEST, DependencyScope.PROVIDED, DependencyScope.RUNTIME) + assertModuleModuleDepScope("project3", "project1", DependencyScope.COMPILE) + } finally { + currentExternalProjectSettings.isResolveModulePerSourceSet = isResolveModulePerSourceSet + } } @Test