kotlin-result/buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts
Michael Bull da96ceef8e 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
2024-03-03 15:24:15 +00:00

101 lines
2.1 KiB
Plaintext

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
plugins {
kotlin("multiplatform")
}
kotlin {
jvmToolchain(8)
jvm()
js(IR) {
browser()
nodejs()
}
@OptIn(ExperimentalWasmDsl::class)
wasmJs {
binaries.executable()
nodejs()
}
/* https://kotlinlang.org/docs/native-target-support.html#tier-1 */
macosX64()
macosArm64()
iosSimulatorArm64()
iosX64()
/* https://kotlinlang.org/docs/native-target-support.html#tier-2 */
linuxX64()
linuxArm64()
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 {
languageSettings.apply {
optIn("kotlin.contracts.ExperimentalContracts")
}
}
commonTest {
dependencies {
implementation(kotlin("test"))
}
}
jvmTest {
dependencies {
implementation(kotlin("test-junit"))
}
}
jsTest {
dependencies {
implementation(kotlin("test-js"))
}
}
}
}
tasks.withType<Jar> {
from(rootDir.resolve("LICENSE")) {
into("META-INF")
}
}
/* https://youtrack.jetbrains.com/issue/KT-63014/Running-tests-with-wasmJs-in-1.9.20-requires-Chrome-Canary#focus=Comments-27-8321383.0-0 */
rootProject.the<NodeJsRootExtension>().apply {
nodeVersion = "21.0.0-v8-canary202309143a48826a08"
nodeDownloadBaseUrl = "https://nodejs.org/download/v8-canary"
}
rootProject.tasks.withType<KotlinNpmInstallTask> {
args.add("--ignore-engines")
}