blob: f384320f2f833969bbf65ba186bb3f7144da8eea [file] [log] [blame]
James Kuszmaul8e62b022022-03-22 09:33:25 -07001plugins {
Austin Schuh2dd86a92022-09-14 21:19:23 -07002 kotlin("multiplatform")
James Kuszmaul8e62b022022-03-22 09:33:25 -07003}
4
5group = "com.google.flatbuffers.kotlin"
6version = "2.0.0-SNAPSHOT"
7
8kotlin {
9 explicitApi()
10 jvm()
11 js {
12 browser {
Austin Schuh2dd86a92022-09-14 21:19:23 -070013 testTask {
James Kuszmaul8e62b022022-03-22 09:33:25 -070014 useKarma {
15 useChromeHeadless()
16 }
17 }
18 }
Austin Schuh2dd86a92022-09-14 21:19:23 -070019 binaries.executable()
James Kuszmaul8e62b022022-03-22 09:33:25 -070020 }
21 macosX64()
22 iosArm32()
23 iosArm64()
24 iosX64()
25
26 sourceSets {
27 val commonMain by getting {
28 dependencies {
29 implementation(kotlin("stdlib-common"))
30 }
31 }
32
33 val commonTest by getting {
34 dependencies {
Austin Schuh2dd86a92022-09-14 21:19:23 -070035 implementation(kotlin("test"))
James Kuszmaul8e62b022022-03-22 09:33:25 -070036 }
37 }
38 val jvmTest by getting {
39 dependencies {
40 implementation(kotlin("test-junit"))
41 }
42 }
43 val jvmMain by getting {
44 kotlin.srcDir("java")
James Kuszmaul8e62b022022-03-22 09:33:25 -070045 }
46
47 val jsMain by getting {
48 dependsOn(commonMain)
49 }
50 val jsTest by getting {
51 dependsOn(commonTest)
52 dependencies {
53 implementation(kotlin("test-js"))
54 }
55 }
56 val nativeMain by creating {
57 dependsOn(commonMain)
58 }
59 val nativeTest by creating {
60 dependsOn(commonMain)
61 }
62 val macosX64Main by getting {
63 dependsOn(nativeMain)
64 }
65
66 val iosArm32Main by getting {
67 dependsOn(nativeMain)
68 }
69 val iosArm64Main by getting {
70 dependsOn(nativeMain)
71 }
72 val iosX64Main by getting {
73 dependsOn(nativeMain)
74 }
75
76 all {
77 languageSettings.enableLanguageFeature("InlineClasses")
Austin Schuh2dd86a92022-09-14 21:19:23 -070078 languageSettings.optIn("kotlin.ExperimentalUnsignedTypes")
James Kuszmaul8e62b022022-03-22 09:33:25 -070079 }
80 }
Austin Schuh2dd86a92022-09-14 21:19:23 -070081}
James Kuszmaul8e62b022022-03-22 09:33:25 -070082
Austin Schuh2dd86a92022-09-14 21:19:23 -070083// Fixes JS issue: https://youtrack.jetbrains.com/issue/KT-49109
84rootProject.plugins.withType<org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin> {
85 rootProject.the<org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension>().nodeVersion = "16.0.0"
James Kuszmaul8e62b022022-03-22 09:33:25 -070086}