Kotlin Facet: Escape additional compiler arguments when converting them to string and unescape before parsing
#KT-16700 Fixed
Original commit: 811b8978c2
This commit is contained in:
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.config
|
package org.jetbrains.kotlin.config
|
||||||
|
|
||||||
|
import com.intellij.openapi.util.text.StringUtil
|
||||||
|
|
||||||
class CompilerSettings {
|
class CompilerSettings {
|
||||||
@JvmField var additionalArguments: String = DEFAULT_ADDITIONAL_ARGUMENTS
|
@JvmField var additionalArguments: String = DEFAULT_ADDITIONAL_ARGUMENTS
|
||||||
@JvmField var scriptTemplates: String = ""
|
@JvmField var scriptTemplates: String = ""
|
||||||
@@ -28,3 +30,8 @@ class CompilerSettings {
|
|||||||
private val DEFAULT_OUTPUT_DIRECTORY = "lib"
|
private val DEFAULT_OUTPUT_DIRECTORY = "lib"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val CompilerSettings.additionalArgumentsAsList: List<String>
|
||||||
|
get() = StringUtil.splitHonorQuotes(additionalArguments, ' ').map {
|
||||||
|
if (it.startsWith('"')) StringUtil.unescapeChar(StringUtil.unquoteString(it), '"') else it
|
||||||
|
}
|
||||||
@@ -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.CompilerMessageLocation
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||||
import org.jetbrains.kotlin.config.CompilerSettings
|
import org.jetbrains.kotlin.config.CompilerSettings
|
||||||
|
import org.jetbrains.kotlin.config.additionalArgumentsAsList
|
||||||
import org.jetbrains.kotlin.daemon.common.*
|
import org.jetbrains.kotlin.daemon.common.*
|
||||||
import org.jetbrains.kotlin.jps.build.KotlinBuilder
|
import org.jetbrains.kotlin.jps.build.KotlinBuilder
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
@@ -129,7 +130,7 @@ class JpsKotlinCompilerRunner : KotlinCompilerRunner<JpsCompilerEnvironment>() {
|
|||||||
|
|
||||||
private fun withAdditionalCompilerArgs(compilerArgs: CommonCompilerArguments): Array<String> {
|
private fun withAdditionalCompilerArgs(compilerArgs: CommonCompilerArguments): Array<String> {
|
||||||
val allArgs = ArgumentUtils.convertArgumentsToStringList(compilerArgs) +
|
val allArgs = ArgumentUtils.convertArgumentsToStringList(compilerArgs) +
|
||||||
(compilerSettings?.additionalArguments?.split(" ") ?: emptyList())
|
(compilerSettings?.additionalArgumentsAsList ?: emptyList())
|
||||||
return allArgs.toTypedArray()
|
return allArgs.toTypedArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user