• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2017-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
3  */
4 import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
5 import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask
6 import org.jetbrains.kotlin.gradle.plugin.mpp.*
7 
8 val serialization_version = property("mainLibVersion") as String
9 
10 // Versions substituted in settings.gradle.kts
<lambda>null11 plugins {
12     id("org.jetbrains.kotlin.multiplatform") version "0"
13     id("org.jetbrains.kotlin.plugin.serialization") version "0"
14     id("org.jetbrains.kotlin.kapt") version "0"
15 
16     id("maven-publish")
17 }
18 
<lambda>null19 repositories {
20     mavenCentral()
21     maven("https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/dev")
22     mavenLocal {
23         mavenContent {
24             snapshotsOnly()
25         }
26     }
27 }
28 
29 group = "com.example"
30 version = "0.0.1"
31 
<lambda>null32 kotlin {
33     // Switching module kind for JS is required to run tests
34     js {
35         nodejs {}
36         compilations.matching { it.name == "main" || it.name == "test" }.configureEach {
37             kotlinOptions {
38                 sourceMap = true
39                 moduleKind = "umd"
40             }
41         }
42     }
43     wasmJs {
44         nodejs()
45     }
46     wasmWasi {
47         nodejs()
48     }
49     jvm {
50         withJava()
51     }
52     macosX64()
53     macosArm64()
54     linuxX64()
55     mingwX64()
56 
57     sourceSets {
58         all {
59             languageSettings {
60                 optIn("kotlinx.serialization.ExperimentalSerializationApi")
61             }
62         }
63 
64         commonMain {
65             dependencies {
66                 implementation(kotlin("stdlib"))
67                 implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:$serialization_version")
68                 implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$serialization_version")
69                 // To check that all expected artifacts are resolvable:
70                 implementation("org.jetbrains.kotlinx:kotlinx-serialization-json-io:$serialization_version")
71                 implementation("org.jetbrains.kotlinx:kotlinx-serialization-json-okio:$serialization_version")
72                 implementation("org.jetbrains.kotlinx:kotlinx-serialization-protobuf:$serialization_version")
73                 implementation("org.jetbrains.kotlinx:kotlinx-serialization-cbor:$serialization_version")
74             }
75         }
76         commonTest {
77             dependencies {
78                 implementation(kotlin("test-common"))
79                 implementation(kotlin("test-annotations-common"))
80             }
81         }
82         jvmMain {
83             dependencies {
84                 implementation(kotlin("stdlib-jdk8"))
85                 implementation("com.google.dagger:dagger:2.13")
86                 implementation("org.jetbrains.kotlinx:kotlinx-serialization-hocon:$serialization_version")
87             }
88         }
89         jvmTest {
90             dependencies {
91                 implementation(kotlin("test"))
92                 implementation(kotlin("test-junit"))
93             }
94         }
95         jsMain {
96             dependencies {
97                 implementation(kotlin("stdlib-js"))
98 
99             }
100         }
101         jsTest {
102             dependencies {
103                 implementation(kotlin("test-js"))
104             }
105         }
106         named("wasmJsMain") {
107             dependencies {
108                 api("org.jetbrains.kotlin:kotlin-stdlib-wasm-js")
109             }
110         }
111         named("wasmJsTest") {
112             dependencies {
113                 api("org.jetbrains.kotlin:kotlin-test-wasm-js")
114             }
115         }
116         named("wasmWasiMain") {
117             dependencies {
118                 api("org.jetbrains.kotlin:kotlin-stdlib-wasm-wasi")
119             }
120         }
121         named("wasmWasiTest") {
122             dependencies {
123                 api("org.jetbrains.kotlin:kotlin-test-wasm-wasi")
124             }
125         }
126     }
127 
128     targets.all {
129         compilations.all {
130             kotlinOptions {
131                 freeCompilerArgs += "-Xexpect-actual-classes"
132             }
133         }
134         compilations["main"].kotlinOptions {
135             allWarningsAsErrors = true
136             // Suppress 'K2 kapt is an experimental feature' warning:
137             freeCompilerArgs += "-Xsuppress-version-warnings"
138         }
139     }
140 
141     // setup tests running in RELEASE mode
142     targets.withType<KotlinNativeTarget>().configureEach {
143         binaries.test(listOf(NativeBuildType.RELEASE))
144     }
145     targets.withType<KotlinNativeTargetWithTests<*>>().configureEach {
146         testRuns.create("releaseTest") {
147             setExecutionSourceFrom(binaries.getTest(NativeBuildType.RELEASE))
148         }
149     }
150 }
151 
<lambda>null152 dependencies {
153     "kapt"("com.google.dagger:dagger-compiler:2.13")
154 }
155 
<lambda>null156 tasks.withType<KotlinNpmInstallTask>().configureEach {
157     args.add("--ignore-engines")
158 }
159