MPP: Implement isTestModule flag (as required by JPS)
This commit is contained in:
+2
@@ -116,6 +116,8 @@ class KotlinSourceSetDataService : AbstractProjectDataService<GradleSourceSetDat
|
||||
with(kotlinFacet.configuration.settings) {
|
||||
kind = kotlinSourceSet.kotlinModule.kind
|
||||
|
||||
isTestModule = kotlinSourceSet.isTestModule
|
||||
|
||||
sourceSetNames = kotlinSourceSet.sourceSetIdsByName.values.mapNotNull { sourceSetId ->
|
||||
val node = mainModuleNode.findChildModuleById(sourceSetId) ?: return@mapNotNull null
|
||||
val data = node.data as? ModuleData ?: return@mapNotNull null
|
||||
|
||||
@@ -215,6 +215,7 @@ class KotlinFacetSettings {
|
||||
|
||||
var kind: KotlinModuleKind = KotlinModuleKind.DEFAULT
|
||||
var sourceSetNames: List<String> = emptyList()
|
||||
var isTestModule: Boolean = false
|
||||
}
|
||||
|
||||
interface KotlinFacetSettingsProvider {
|
||||
|
||||
@@ -131,6 +131,7 @@ private fun readV2AndLaterConfig(element: Element): KotlinFacetSettings {
|
||||
}
|
||||
} else null
|
||||
} ?: KotlinModuleKind.DEFAULT
|
||||
isTestModule = element.getAttributeValue("isTestModule")?.toBoolean() ?: false
|
||||
element.getChild("compilerSettings")?.let {
|
||||
compilerSettings = CompilerSettings()
|
||||
XmlSerializer.deserializeInto(compilerSettings!!, it)
|
||||
@@ -289,6 +290,7 @@ private fun KotlinFacetSettings.writeLatestConfig(element: Element) {
|
||||
}
|
||||
if (kind != KotlinModuleKind.DEFAULT) {
|
||||
element.addContent(Element("newMppModelJpsModuleKind").apply { addContent(kind.name) })
|
||||
element.setAttribute("isTestModule", isTestModule.toString())
|
||||
}
|
||||
productionOutputPath?.let {
|
||||
if (it != (compilerArguments as? K2JSCompilerArguments)?.outputFile) {
|
||||
|
||||
@@ -14,12 +14,12 @@ import org.jetbrains.jps.incremental.ModuleBuildTarget
|
||||
import org.jetbrains.jps.model.java.JavaResourceRootType
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootProperties
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
||||
import org.jetbrains.jps.model.module.JpsModule
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinResourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.jps.model.expectedByModules
|
||||
import org.jetbrains.kotlin.jps.model.isTestModule
|
||||
import org.jetbrains.kotlin.jps.model.sourceSetModules
|
||||
import java.io.File
|
||||
|
||||
@@ -54,8 +54,10 @@ class KotlinSourceRootProvider : AdditionalRootsProviderService<JavaSourceRootDe
|
||||
}
|
||||
|
||||
// new multiplatform model support:
|
||||
module.sourceSetModules.forEach { sourceSetModule ->
|
||||
addModuleSourceRoots(result, sourceSetModule, target)
|
||||
if (target.isTests == module.isTestModule) {
|
||||
module.sourceSetModules.forEach { sourceSetModule ->
|
||||
addModuleSourceRoots(result, sourceSetModule, target)
|
||||
}
|
||||
}
|
||||
|
||||
// legacy multiplatform model support:
|
||||
|
||||
@@ -22,6 +22,9 @@ val JpsModule.platform: IdePlatform<*, *>?
|
||||
val JpsModule.kotlinKind: KotlinModuleKind
|
||||
get() = kotlinFacet?.settings?.kind ?: KotlinModuleKind.DEFAULT
|
||||
|
||||
val JpsModule.isTestModule: Boolean
|
||||
get() = kotlinFacet?.settings?.isTestModule ?: false
|
||||
|
||||
/**
|
||||
* Modules which is imported from sources sets of the compilation represented by this module.
|
||||
* This module is not included.
|
||||
|
||||
Reference in New Issue
Block a user