diff --git a/idea/idea-android/src/org/jetbrains/kotlin/android/AndroidGradleOrderEnumerationHandler.kt b/idea/idea-android/src/org/jetbrains/kotlin/android/KotlinAndroidGradleOrderEnumerationHandler.kt
similarity index 82%
rename from idea/idea-android/src/org/jetbrains/kotlin/android/AndroidGradleOrderEnumerationHandler.kt
rename to idea/idea-android/src/org/jetbrains/kotlin/android/KotlinAndroidGradleOrderEnumerationHandler.kt
index ce0a4f73fb3..d97efe36318 100644
--- a/idea/idea-android/src/org/jetbrains/kotlin/android/AndroidGradleOrderEnumerationHandler.kt
+++ b/idea/idea-android/src/org/jetbrains/kotlin/android/KotlinAndroidGradleOrderEnumerationHandler.kt
@@ -11,13 +11,12 @@ import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
import com.intellij.openapi.module.Module
import com.intellij.openapi.module.ModuleManager
import com.intellij.openapi.roots.ModuleRootModel
+import com.intellij.openapi.roots.OrderEnumerationHandler
import com.intellij.openapi.roots.OrderRootType
import com.intellij.openapi.vfs.VfsUtilCore
-import org.jetbrains.kotlin.config.KotlinFacetSettingsProvider
+import org.jetbrains.kotlin.idea.caches.project.isMPPModule
import org.jetbrains.kotlin.idea.core.isAndroidModule
import org.jetbrains.kotlin.idea.facet.KotlinFacet
-import org.jetbrains.kotlin.platform.impl.isCommon
-import org.jetbrains.plugins.gradle.execution.GradleOrderEnumeratorHandler
import org.jetbrains.plugins.gradle.model.ExternalSourceDirectorySet
import org.jetbrains.plugins.gradle.service.project.data.ExternalProjectDataCache
import org.jetbrains.plugins.gradle.util.GradleConstants
@@ -33,9 +32,7 @@ import java.io.File
Everything works for Java-only projects because there's only a single classes directory,
but Kotlin Gradle plugin adds a separate output directory, and it's not attached by default.
*/
-class AndroidGradleOrderEnumerationHandler(module: Module) : GradleOrderEnumeratorHandler(module) {
- override fun shouldProcessDependenciesRecursively() = false
-
+class KotlinAndroidGradleOrderEnumerationHandler(private val module: Module) : OrderEnumerationHandler() {
override fun addCustomModuleRoots(
type: OrderRootType,
rootModel: ModuleRootModel,
@@ -85,17 +82,11 @@ class AndroidGradleOrderEnumerationHandler(module: Module) : GradleOrderEnumerat
return true
}
- class FactoryImpl : Factory() {
+ class FactoryImpl : OrderEnumerationHandler.Factory() {
override fun isApplicable(module: Module): Boolean {
- return ExternalSystemApiUtil.isExternalSystemAwareModule(GradleConstants.SYSTEM_ID, module)
- && !module.isMultiplatformModule()
+ return ExternalSystemApiUtil.isExternalSystemAwareModule(GradleConstants.SYSTEM_ID, module) && !module.isMPPModule
}
- override fun createHandler(module: Module) = AndroidGradleOrderEnumerationHandler(module)
+ override fun createHandler(module: Module) = KotlinAndroidGradleOrderEnumerationHandler(module)
}
-}
-
-private fun Module.isMultiplatformModule(): Boolean {
- val settings = KotlinFacetSettingsProvider.getInstance(project).getInitializedSettings(this)
- return settings.platform.isCommon || settings.implementedModuleNames.isNotEmpty()
}
\ No newline at end of file
diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/gradle/execution/KotlinGradleOrderEnumerationHandler.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/gradle/execution/KotlinGradleOrderEnumerationHandler.kt
new file mode 100644
index 00000000000..1a08cd01e9a
--- /dev/null
+++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/gradle/execution/KotlinGradleOrderEnumerationHandler.kt
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
+ * that can be found in the license/LICENSE.txt file.
+ */
+
+package org.jetbrains.kotlin.idea.gradle.execution
+
+import com.intellij.openapi.module.Module
+import org.jetbrains.kotlin.idea.caches.project.isMPPModule
+import org.jetbrains.plugins.gradle.execution.GradleOrderEnumeratorHandler
+
+open class KotlinGradleOrderEnumerationHandler(module: Module) : GradleOrderEnumeratorHandler(module) {
+ override fun shouldIncludeTestsFromDependentModulesToTestClasspath(): Boolean {
+ return true
+ }
+
+ open class Factory : GradleOrderEnumeratorHandler.FactoryImpl() {
+ override fun isApplicable(module: Module): Boolean {
+ return module.isMPPModule
+ }
+
+ override fun createHandler(module: Module) = KotlinGradleOrderEnumerationHandler(module)
+ }
+}
diff --git a/idea/src/META-INF/gradle-java.xml b/idea/src/META-INF/gradle-java.xml
index 5936460b1a9..d3ad59251fc 100644
--- a/idea/src/META-INF/gradle-java.xml
+++ b/idea/src/META-INF/gradle-java.xml
@@ -61,8 +61,7 @@
-
-
+
diff --git a/idea/src/META-INF/gradle-java.xml.as33 b/idea/src/META-INF/gradle-java.xml.as33
index 6a7accc698c..c617a7ac134 100644
--- a/idea/src/META-INF/gradle-java.xml.as33
+++ b/idea/src/META-INF/gradle-java.xml.as33
@@ -60,6 +60,7 @@
+
diff --git a/idea/src/META-INF/gradle.xml b/idea/src/META-INF/gradle.xml
index 1e7b4cc61c5..e2983b8934f 100644
--- a/idea/src/META-INF/gradle.xml
+++ b/idea/src/META-INF/gradle.xml
@@ -11,6 +11,10 @@
+
+
+
+
diff --git a/idea/src/META-INF/gradle.xml.181 b/idea/src/META-INF/gradle.xml.181
index 8f275e70720..7b9319b737d 100644
--- a/idea/src/META-INF/gradle.xml.181
+++ b/idea/src/META-INF/gradle.xml.181
@@ -70,7 +70,7 @@
-
+