diff --git a/jps-plugin/src/META-INF/services/org.jetbrains.jps.builders.AdditionalRootsProviderService b/jps-plugin/src/META-INF/services/org.jetbrains.jps.builders.AdditionalRootsProviderService index 07ac7d506ad..efe8f6601cb 100644 --- a/jps-plugin/src/META-INF/services/org.jetbrains.jps.builders.AdditionalRootsProviderService +++ b/jps-plugin/src/META-INF/services/org.jetbrains.jps.builders.AdditionalRootsProviderService @@ -1 +1 @@ -org.jetbrains.kotlin.jps.build.KotlinMppCommonSourceRootProvider \ No newline at end of file +org.jetbrains.kotlin.jps.build.KotlinSourceRootProvider \ No newline at end of file diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinMppCommonSourceRootProvider.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinSourceRootProvider.kt similarity index 74% rename from jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinMppCommonSourceRootProvider.kt rename to jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinSourceRootProvider.kt index 1b1d0c4001b..09f8b6de82d 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinMppCommonSourceRootProvider.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinSourceRootProvider.kt @@ -20,11 +20,10 @@ import org.jetbrains.kotlin.jps.model.expectedByModules import java.io.File /** - * Required for Multiplatform Projects. - * - * Adds all the source roots of the expectedBy modules to the platform modules. + * - adds roots with KotlinSourceRootType + * - for Multiplatform Projects: adds all the source roots of the expectedBy modules to the platform modules. */ -class KotlinMppCommonSourceRootProvider : AdditionalRootsProviderService(JavaModuleBuildTargetType.ALL_TYPES) { +class KotlinSourceRootProvider : AdditionalRootsProviderService(JavaModuleBuildTargetType.ALL_TYPES) { override fun getAdditionalRoots( target: BuildTarget, dataPaths: BuildDataPaths? @@ -34,14 +33,30 @@ class KotlinMppCommonSourceRootProvider : AdditionalRootsProviderService() + // add source roots with type KotlinSourceRootType + val kotlinSourceRootType = if (target.isTests) KotlinSourceRootType.TestSource else KotlinSourceRootType.Source + module.getSourceRoots(kotlinSourceRootType).forEach { + result.add( + JavaSourceRootDescriptor( + it.file, + target, + false, + false, + it.properties.packagePrefix, + setOf() + ) + ) + } + + // add source roots of the expectedBy modules module.expectedByModules.forEach { commonModule -> - addSourceRoots(result, commonModule, target) + addCommonModuleSourceRoots(result, commonModule, target) } return result } - private fun addSourceRoots( + private fun addCommonModuleSourceRoots( result: MutableList, commonModule: JpsModule, target: ModuleBuildTarget