diff --git a/jps/jps-common/src/org/jetbrains/kotlin/config/CompilerSettings.kt b/jps/jps-common/src/org/jetbrains/kotlin/config/CompilerSettings.kt index 89af21eee09..67326926e1c 100644 --- a/jps/jps-common/src/org/jetbrains/kotlin/config/CompilerSettings.kt +++ b/jps/jps-common/src/org/jetbrains/kotlin/config/CompilerSettings.kt @@ -16,6 +16,8 @@ package org.jetbrains.kotlin.config +import com.intellij.openapi.util.text.StringUtil + class CompilerSettings { @JvmField var additionalArguments: String = DEFAULT_ADDITIONAL_ARGUMENTS @JvmField var scriptTemplates: String = "" @@ -28,3 +30,8 @@ class CompilerSettings { private val DEFAULT_OUTPUT_DIRECTORY = "lib" } } + +val CompilerSettings.additionalArgumentsAsList: List + get() = StringUtil.splitHonorQuotes(additionalArguments, ' ').map { + if (it.startsWith('"')) StringUtil.unescapeChar(StringUtil.unquoteString(it), '"') else it + } \ No newline at end of file diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/JpsKotlinCompilerRunner.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/JpsKotlinCompilerRunner.kt index 485f72aee0b..447b226c316 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/JpsKotlinCompilerRunner.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/JpsKotlinCompilerRunner.kt @@ -26,6 +26,7 @@ import org.jetbrains.kotlin.cli.common.arguments.mergeBeans import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity import org.jetbrains.kotlin.config.CompilerSettings +import org.jetbrains.kotlin.config.additionalArgumentsAsList import org.jetbrains.kotlin.daemon.common.* import org.jetbrains.kotlin.jps.build.KotlinBuilder import java.io.ByteArrayOutputStream @@ -129,7 +130,7 @@ class JpsKotlinCompilerRunner : KotlinCompilerRunner() { private fun withAdditionalCompilerArgs(compilerArgs: CommonCompilerArguments): Array { val allArgs = ArgumentUtils.convertArgumentsToStringList(compilerArgs) + - (compilerSettings?.additionalArguments?.split(" ") ?: emptyList()) + (compilerSettings?.additionalArgumentsAsList ?: emptyList()) return allArgs.toTypedArray() }