diff --git a/build.gradle.kts b/build.gradle.kts
index 7e4eec1abb0..78d264fbfd8 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -159,7 +159,7 @@ extra["versions.markdown"] = "0.1.25"
extra["versions.trove4j"] = "1.0.20181211"
if (!project.hasProperty("versions.kotlin-native")) {
- extra["versions.kotlin-native"] = "1.3-dev-8848"
+ extra["versions.kotlin-native"] = "1.3-dev-9171"
}
val isTeamcityBuild = project.hasProperty("teamcity") || System.getenv("TEAMCITY_VERSION") != null
diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/parseCommandLineArguments.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/parseCommandLineArguments.kt
index e38bdb3be52..20f1a89ab2a 100644
--- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/parseCommandLineArguments.kt
+++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/parseCommandLineArguments.kt
@@ -186,7 +186,11 @@ private fun updateField(property: KMutableProperty1 property.set(result, value)
Array::class -> {
- val newElements = (value as String).split(delimiter).toTypedArray()
+ val newElements = if (delimiter.isEmpty()) {
+ arrayOf(value as String)
+ } else {
+ (value as String).split(delimiter).toTypedArray()
+ }
@Suppress("UNCHECKED_CAST")
val oldValue = property.get(result) as Array?
property.set(result, if (oldValue != null) arrayOf(*oldValue, *newElements) else newElements)
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt
index bc2295269a2..246f8664cdc 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt
@@ -182,7 +182,7 @@ class NewMultiplatformIT : BaseGradleIT() {
// Check that linker options were correctly passed to the K/N compiler.
checkProgramCompilationCommandLine {
- assertTrue(it.contains("-linker-options -L."))
+ assertTrue(it.contains("-linker-option -L."))
}
}
@@ -933,7 +933,7 @@ class NewMultiplatformIT : BaseGradleIT() {
assertSuccessful()
}
- // Check that run tasks work find and an entry point can be specified.
+ // Check that run tasks work fine and an entry point can be specified.
build("runDebugExecutable$hostSuffix") {
assertSuccessful()
assertTrue(output.contains(".main"))
@@ -995,7 +995,7 @@ class NewMultiplatformIT : BaseGradleIT() {
build("linkCustomReleaseFrameworkIos") {
assertSuccessful()
checkFrameworkCompilationCommandLine {
- assertTrue(it.contains("-linker-options -L."))
+ assertTrue(it.contains("-linker-option -L."))
assertTrue(it.contains("-Xtime"))
assertTrue(it.contains("-Xstatic-framework"))
assertFalse(it.contains("-Xembed-bitcode-marker"))
diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt
index 609da9a4e34..867ad797d36 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt
@@ -61,12 +61,6 @@ internal fun MutableList.addFileArgs(parameter: String, values: Collecti
}
}
-internal fun MutableList.addListArg(parameter: String, values: List) {
- if (values.isNotEmpty()) {
- addArg(parameter, values.joinToString(separator = " "))
- }
-}
-
private fun File.providedByCompiler(project: Project): Boolean =
toPath().startsWith(project.file(project.konanHome).resolve("klib").toPath())
@@ -398,7 +392,9 @@ open class KotlinNativeLink : AbstractKotlinNativeCompile() {
Framework.BitcodeEmbeddingMode.BITCODE -> add("-Xembed-bitcode")
else -> { /* Do nothing. */ }
}
- addListArg("-linker-options", linkerOpts)
+ linkerOpts.forEach {
+ addArg("-linker-option", it)
+ }
exportLibraries.files.filterExternalKlibs(project).forEach {
add("-Xexport-library=${it.absolutePath}")
}
@@ -521,18 +517,18 @@ open class CInteropProcess : DefaultTask() {
addFileArgs("-header", headers)
compilerOpts.forEach {
- addArg("-copt", it)
+ addArg("-compilerOpt", it)
}
linkerOpts.forEach {
- addArg("-lopt", it)
+ addArg("-linkerOpt", it)
}
libraries.files.filterExternalKlibs(project).forEach { library ->
addArg("-library", library.absolutePath)
}
- addArgs("-copt", allHeadersDirs.map { "-I${it.absolutePath}" })
+ addArgs("-compilerOpt", allHeadersDirs.map { "-I${it.absolutePath}" })
addArgs("-headerFilterAdditionalSearchPrefix", headerFilterDirs.map { it.absolutePath })
addAll(extraOpts)