MPP: Implement isTestModule flag (as required by JPS)

This commit is contained in:
Alexey Sedunov
2018-09-07 18:54:38 +03:00
parent befb6d19d1
commit 6206f1e419
5 changed files with 13 additions and 3 deletions
@@ -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) {