From 1577239e4d35d55a40dd71d4ee3cbca7878706c4 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Wed, 24 Jan 2018 16:27:02 +0300 Subject: [PATCH] Gradle: Import production output path for JavaScript modules Original commit: 1f7fab837f89490bba8dd997ca62aaf4e9c7d32f --- .../org/jetbrains/kotlin/config/KotlinFacetSettings.kt | 1 + .../src/org/jetbrains/kotlin/config/facetSerialization.kt | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt b/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt index 7c71a715654..48c89ae5881 100644 --- a/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt +++ b/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt @@ -194,6 +194,7 @@ class KotlinFacetSettings { var implementedModuleName: String? = null + var productionOutputPath: String? = null var testOutputPath: String? = null } diff --git a/jps/jps-common/src/org/jetbrains/kotlin/config/facetSerialization.kt b/jps/jps-common/src/org/jetbrains/kotlin/config/facetSerialization.kt index fbb209aedd3..c37eab577f0 100644 --- a/jps/jps-common/src/org/jetbrains/kotlin/config/facetSerialization.kt +++ b/jps/jps-common/src/org/jetbrains/kotlin/config/facetSerialization.kt @@ -110,6 +110,9 @@ private fun readV2AndLaterConfig(element: Element): KotlinFacetSettings { XmlSerializer.deserializeInto(compilerArguments!!, it) compilerArguments!!.detectVersionAutoAdvance() } + productionOutputPath = element.getChild("productionOutputPath")?.let { + PathUtil.toSystemDependentName((it.content.firstOrNull() as? Text)?.textTrim) + } ?: (compilerArguments as? K2JSCompilerArguments)?.outputFile testOutputPath = element.getChild("testOutputPath")?.let { PathUtil.toSystemDependentName((it.content.firstOrNull() as? Text)?.textTrim) } ?: (compilerArguments as? K2JSCompilerArguments)?.outputFile @@ -237,6 +240,11 @@ private fun KotlinFacetSettings.writeLatestConfig(element: Element) { implementedModuleName?.let { element.addContent(Element("implements").apply { addContent(it) }) } + productionOutputPath?.let { + if (it != (compilerArguments as? K2JSCompilerArguments)?.outputFile) { + element.addContent(Element("productionOutputPath").apply { addContent(PathUtil.toSystemIndependentName(it)) }) + } + } testOutputPath?.let { if (it != (compilerArguments as? K2JSCompilerArguments)?.outputFile) { element.addContent(Element("testOutputPath").apply { addContent(PathUtil.toSystemIndependentName(it)) })