From a681f6a1cec6af4c78b841341443fa64631431c6 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Wed, 29 Mar 2023 10:38:53 +0200 Subject: [PATCH] [Gradle] KotlinNativeLink: Use singleLinkerArguments instead of linkerArguments KTIJ-24976 --- .../org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt | 7 ++++++- .../kotlin/gradle/targets/native/tasks/KotlinNativeLink.kt | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) 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 3bb6ce72c25..d5531f0f14b 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 @@ -8,6 +8,8 @@ import org.gradle.api.logging.LogLevel import org.jetbrains.kotlin.gradle.native.GeneralNativeIT.Companion.withNativeCommandLineArguments import org.jetbrains.kotlin.gradle.native.GeneralNativeIT.Companion.containsSequentially import org.gradle.util.GradleVersion +import org.jetbrains.kotlin.cli.common.arguments.K2NativeCompilerArguments +import org.jetbrains.kotlin.cli.common.arguments.parseCommandLineArguments import org.jetbrains.kotlin.gradle.native.* import org.jetbrains.kotlin.gradle.native.MPPNativeTargets import org.jetbrains.kotlin.gradle.native.transformNativeTestProject @@ -201,6 +203,8 @@ open class NewMultiplatformIT : BaseGradleIT() { // Check that linker options were correctly passed to the K/N compiler. withNativeCommandLineArguments(":linkMainDebugExecutableLinux64") { arguments -> + val parsedArguments = parseCommandLineArguments(arguments) + assertEquals(listOf("-L."), parsedArguments.singleLinkerArguments?.toList()) assertTrue(arguments.containsSequentially("-linker-option", "-L.")) } } @@ -1558,7 +1562,8 @@ open class NewMultiplatformIT : BaseGradleIT() { ).flatMapTo(mutableSetOf()) { target -> listOf("main", "test").map { compilation -> Triple(target, compilation, - "$target${compilation.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }}") + "$target${compilation.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }}" + ) } } + Triple("metadata", "main", "commonMain") diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeLink.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeLink.kt index 336f8a0dd62..a18a229a2cc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeLink.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeLink.kt @@ -219,7 +219,7 @@ constructor( null, BitcodeEmbeddingMode.DISABLE -> Unit } - args.linkerArguments = linkerOpts.toTypedArray() + args.singleLinkerArguments = linkerOpts.toTypedArray() args.binaryOptions = binaryOptions.map { (key, value) -> "$key=$value" }.toTypedArray() args.staticFramework = isStaticFramework