From 359f5fe7b33a8d7b4f4d41a0cc7f1a9fe1ab8af9 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Wed, 22 Nov 2023 20:32:14 +0100 Subject: [PATCH] [K/N] Samples: Migrate 'echoServer' to modern multiplatform ^KT-50547 Fixed --- .../tests/samples/build.gradle.kts | 2 +- .../tests/samples/echoServer/build.gradle.kts | 48 +++++-------------- .../samples/echoServer/gradle.properties | 1 - .../kotlin/EchoServer.kt | 0 4 files changed, 13 insertions(+), 38 deletions(-) rename kotlin-native/backend.native/tests/samples/echoServer/src/{echoServerMain => nativeMain}/kotlin/EchoServer.kt (100%) diff --git a/kotlin-native/backend.native/tests/samples/build.gradle.kts b/kotlin-native/backend.native/tests/samples/build.gradle.kts index d442acb523a..661fb29e6e0 100644 --- a/kotlin-native/backend.native/tests/samples/build.gradle.kts +++ b/kotlin-native/backend.native/tests/samples/build.gradle.kts @@ -49,7 +49,7 @@ val buildSamplesWithPlatformLibs by tasks.creating { dependsOn(":workers:assemble") if (isMacos || isLinux) { - dependsOn(":echoServer:assemble") // https://youtrack.jetbrains.com/issue/KT-50547 + dependsOn(":echoServer:assemble") //https://youtrack.jetbrains.com/issue/KT-63721/ dependsOn(":nonBlockingEchoServer:assemble") dependsOn(":tensorflow:assemble") } diff --git a/kotlin-native/backend.native/tests/samples/echoServer/build.gradle.kts b/kotlin-native/backend.native/tests/samples/echoServer/build.gradle.kts index eb3ecc2561a..d4cc863d1a3 100644 --- a/kotlin-native/backend.native/tests/samples/echoServer/build.gradle.kts +++ b/kotlin-native/backend.native/tests/samples/echoServer/build.gradle.kts @@ -1,33 +1,22 @@ -import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetPreset +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget plugins { kotlin("multiplatform") } -val additionalPresets: List = listOf("linuxArm64").map { - kotlin.presets[it] as KotlinNativeTargetPreset -} - kotlin { - // Determine host preset. - val hostOs = System.getProperty("os.name") + macosX64() + macosArm64() + linuxArm64() + linuxX64() + /* + https://youtrack.jetbrains.com/issue/KT-63721/Commonizer-Uncovered-platform.posix.socket-not-commonized-for-mingw-linux-macos + Not building for windows, because it would require writing expect/actuals around + signed vs unsigned socket APIs: + mingwX64() + */ - // Create a target for the host platform. - val hostTarget = when { - hostOs == "Mac OS X" -> macosX64("echoServer") - hostOs == "Linux" -> linuxX64("echoServer") - hostOs.startsWith("Windows") -> mingwX64("echoServer") - else -> throw GradleException("Host OS '$hostOs' is not supported in Kotlin/Native $project.") - } - - // Create cross-targets. - val additionalTargets = additionalPresets.map { preset -> - val targetName = "echoServer${preset.name.capitalize()}" - targetFromPreset(preset, targetName) {} - } - - // Configure executables for all targets. - configure(additionalTargets + listOf(hostTarget)) { + targets.withType().configureEach { binaries { executable { entryPoint = "sample.echoserver.main" @@ -35,17 +24,4 @@ kotlin { } } } - - sourceSets { - val echoServerMain by getting - additionalPresets.forEach { preset -> - val mainSourceSetName = "echoServer${preset.name.capitalize()}Main" - getByName(mainSourceSetName).dependsOn(echoServerMain) - } - } - - // Enable experimental stdlib API used by the sample. - sourceSets.all { - languageSettings.optIn("kotlin.ExperimentalStdlibApi") - } } diff --git a/kotlin-native/backend.native/tests/samples/echoServer/gradle.properties b/kotlin-native/backend.native/tests/samples/echoServer/gradle.properties index 790a07d5124..7fc6f1ff272 100644 --- a/kotlin-native/backend.native/tests/samples/echoServer/gradle.properties +++ b/kotlin-native/backend.native/tests/samples/echoServer/gradle.properties @@ -1,2 +1 @@ kotlin.code.style=official -kotlin.import.noCommonSourceSets=true diff --git a/kotlin-native/backend.native/tests/samples/echoServer/src/echoServerMain/kotlin/EchoServer.kt b/kotlin-native/backend.native/tests/samples/echoServer/src/nativeMain/kotlin/EchoServer.kt similarity index 100% rename from kotlin-native/backend.native/tests/samples/echoServer/src/echoServerMain/kotlin/EchoServer.kt rename to kotlin-native/backend.native/tests/samples/echoServer/src/nativeMain/kotlin/EchoServer.kt