plugins { id 'org.jetbrains.kotlin.multiplatform' } repositories { mavenCentral() maven { url "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev" } // Coroutines from the outer project are published by previous CI buils step mavenLocal() } kotlin { jvm() js(IR) { nodejs() } wasmJs() { nodejs() } macosArm64() macosX64() linuxArm64() linuxX64() mingwX64() sourceSets { commonMain { dependencies { implementation kotlin('stdlib-common') implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version" } } commonTest { dependencies { implementation kotlin('test-common') implementation kotlin('test-annotations-common') implementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines_version" } } jsTest { dependencies { implementation kotlin('test-js') } } wasmJsTest { dependencies { implementation kotlin('test-wasm-js') } } jvmTest { dependencies { implementation kotlin('test') implementation kotlin('test-junit') } } } targets { configure([]) { tasks.getByName(compilations.main.compileKotlinTaskName).kotlinOptions { jvmTarget = "1.8" } } } } // Drop this configuration when the Node.JS version in KGP will support wasm gc milestone 4 // check it here: // https://github.com/JetBrains/kotlin/blob/master/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsRootExtension.kt rootProject.extensions.findByType(org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension.class).with { // canary nodejs that supports recent Wasm GC changes it.nodeVersion = "21.0.0-v8-canary202309167e82ab1fa2" it.nodeDownloadBaseUrl = "https://nodejs.org/download/v8-canary" }