@@ -14,35 +14,34 @@ mavenPublicationsPom {
1414}
1515
1616kotlin {
17- infra {
18- // According to https://kotlinlang.org/docs/native-target-support.html
19-
20- // Tier 1
21- target(" linuxX64" )
22- target(" macosX64" )
23- target(" macosArm64" )
24- target(" iosSimulatorArm64" )
25- target(" iosX64" )
26-
27- // Tier 2
28- target(" linuxArm64" )
29- target(" watchosSimulatorArm64" )
30- target(" watchosX64" )
31- target(" watchosArm32" )
32- target(" watchosArm64" )
33- target(" tvosSimulatorArm64" )
34- target(" tvosX64" )
35- target(" tvosArm64" )
36- target(" iosArm64" )
37-
38- // Tier 3
39- target(" androidNativeArm32" )
40- target(" androidNativeArm64" )
41- target(" androidNativeX86" )
42- target(" androidNativeX64" )
43- target(" mingwX64" )
44- target(" watchosDeviceArm64" )
45- }
17+ applyDefaultHierarchyTemplate()
18+
19+ // According to https://kotlinlang.org/docs/native-target-support.html
20+ // Tier 1
21+ linuxX64()
22+ macosX64()
23+ macosArm64()
24+ iosSimulatorArm64()
25+ iosX64()
26+
27+ // Tier 2
28+ linuxArm64()
29+ watchosSimulatorArm64()
30+ watchosX64()
31+ watchosArm32()
32+ watchosArm64()
33+ tvosSimulatorArm64()
34+ tvosX64()
35+ tvosArm64()
36+ iosArm64()
37+
38+ // Tier 3
39+ androidNativeArm32()
40+ androidNativeArm64()
41+ androidNativeX86()
42+ androidNativeX64()
43+ mingwX64()
44+ watchosDeviceArm64()
4645
4746 jvm {
4847 compilations.all {
@@ -69,6 +68,26 @@ kotlin {
6968 }
7069 }
7170
71+ wasmJs {
72+ nodejs {
73+ testTask {
74+ useMocha {
75+ timeout = " 30000"
76+ }
77+ }
78+ }
79+ }
80+
81+ wasmWasi {
82+ nodejs {
83+ testTask {
84+ useMocha {
85+ timeout = " 30000"
86+ }
87+ }
88+ }
89+ }
90+
7291 sourceSets.all {
7392 kotlin.setSrcDirs(listOf (" $name /src" ))
7493 resources.setSrcDirs(listOf (" $name /resources" ))
@@ -100,6 +119,25 @@ kotlin {
100119 val jsTest by getting {
101120 }
102121
122+ val wasmMain by creating {
123+ }
124+ val wasmTest by creating {
125+ }
126+
127+ val wasmJsMain by getting {
128+ dependsOn(wasmMain)
129+ }
130+ val wasmJsTest by getting {
131+ dependsOn(wasmTest)
132+ }
133+
134+ val wasmWasiMain by getting {
135+ dependsOn(wasmMain)
136+ }
137+ val wasmWasiTest by getting {
138+ dependsOn(wasmTest)
139+ }
140+
103141 val nativeMain by getting {
104142 }
105143 val nativeTest by getting {
@@ -111,4 +149,14 @@ tasks {
111149 named(" jvmTest" , Test ::class ) {
112150 maxHeapSize = " 1024m"
113151 }
152+ }
153+
154+ with (org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin .apply (rootProject)) {
155+ nodeVersion = " 21.0.0-v8-canary202309167e82ab1fa2"
156+ nodeDownloadBaseUrl = " https://nodejs.org/download/v8-canary"
157+ }
158+
159+ // Drop this when node js version become stable
160+ tasks.withType< org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask > ().configureEach {
161+ args.add(" --ignore-engines" )
114162}
0 commit comments