From da96ceef8efcc871c27b67cd1bd85b53d6317b62 Mon Sep 17 00:00:00 2001 From: Michael Bull Date: Sun, 3 Mar 2024 15:18:43 +0000 Subject: [PATCH] Add more build targets for coroutines extensions kotlinx-coroutines has since started publishing more native build targets since we first became multiplatform. This commit ensures we also build native targets for the platforms that were previously missing, namely: - androidNativeArm32 - androidNativeArm64 - androidNativeX64 - androidNativeX86 - linuxArm64 - wasmJs This ensures that we are now supporting all three tiers of Kotlin/Native target support. See: https://kotlinlang.org/docs/native-target-support.html --- .github/workflows/ci.yaml | 1 + .../main/kotlin/kotlin-conventions.gradle.kts | 41 ++++++++++++++----- kotlin-result/build.gradle.kts | 16 -------- 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index bf81af6..d49bbf9 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -93,6 +93,7 @@ jobs: publishTvosX64PublicationToMavenRepository publishWatchosArm32PublicationToMavenRepository publishWatchosArm64PublicationToMavenRepository + publishWatchosDeviceArm64PublicationToMavenRepository publishWatchosSimulatorArm64PublicationToMavenRepository publishWatchosX64PublicationToMavenRepository diff --git a/buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts b/buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts index bbb607e..5d5142c 100644 --- a/buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts @@ -1,3 +1,4 @@ +import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask @@ -15,25 +16,45 @@ kotlin { nodejs() } - linuxX64() + @OptIn(ExperimentalWasmDsl::class) + wasmJs { + binaries.executable() + nodejs() + } - mingwX64() + /* https://kotlinlang.org/docs/native-target-support.html#tier-1 */ - macosArm64() macosX64() - - iosArm64() + macosArm64() iosSimulatorArm64() iosX64() - tvosArm64() - tvosSimulatorArm64() - tvosX64() + /* https://kotlinlang.org/docs/native-target-support.html#tier-2 */ + + linuxX64() + linuxArm64() - watchosArm32() - watchosArm64() watchosSimulatorArm64() watchosX64() + watchosArm32() + watchosArm64() + + tvosSimulatorArm64() + tvosX64() + tvosArm64() + + iosArm64() + + /* https://kotlinlang.org/docs/native-target-support.html#tier-3 */ + + androidNativeArm32() + androidNativeArm64() + androidNativeX86() + androidNativeX64() + + mingwX64() + + watchosDeviceArm64() sourceSets { all { diff --git a/kotlin-result/build.gradle.kts b/kotlin-result/build.gradle.kts index 24c71b8..cc92fcf 100644 --- a/kotlin-result/build.gradle.kts +++ b/kotlin-result/build.gradle.kts @@ -1,5 +1,3 @@ -import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl - plugins { `maven-publish` id("kotlin-conventions") @@ -8,18 +6,4 @@ plugins { kotlin { explicitApi() - - // Additional targets not currently supported by coroutines - androidNativeArm32() - androidNativeArm64() - androidNativeX64() - androidNativeX86() - - linuxArm64() - - @OptIn(ExperimentalWasmDsl::class) - wasmJs { - binaries.executable() - nodejs() - } }