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)