xref: /aosp_15_r20/external/kotlinx.serialization/integration-test/build.gradle (revision 57b5a4a64c534cf7f27ac9427ceab07f3d8ed3d8)
1/*
2 * Copyright 2017-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
3 */
4buildscript {
5    ext.serialization_version = mainLibVersion
6
7    repositories {
8        mavenCentral()
9        maven { url "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/dev" }
10        mavenLocal() {
11            mavenContent {
12                snapshotsOnly()
13            }
14        }
15    }
16}
17
18// Versions substituted in settings.gradle
19plugins {
20    id 'org.jetbrains.kotlin.multiplatform' version '0'
21    id 'org.jetbrains.kotlin.plugin.serialization' version '0'
22    id 'org.jetbrains.kotlin.kapt' version '0'
23}
24
25repositories {
26    mavenCentral()
27    maven { url "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/dev" }
28    mavenLocal() {
29        mavenContent {
30            snapshotsOnly()
31        }
32    }
33}
34
35group 'com.example'
36version '0.0.1'
37
38apply plugin: 'maven-publish'
39
40kotlin {
41    // Switching module kind for JS is required to run tests
42    js {
43        nodejs {}
44        configure([compilations.main, compilations.test]) {
45            kotlinOptions {
46                sourceMap = true
47                moduleKind = "umd"
48            }
49        }
50    }
51    wasmJs {
52        nodejs()
53    }
54    wasmWasi {
55        nodejs()
56    }
57    jvm {
58        withJava()
59    }
60    macosX64()
61    macosArm64()
62    linuxX64()
63    mingwX64()
64
65    sourceSets {
66        all {
67            languageSettings {
68                optIn('kotlinx.serialization.ExperimentalSerializationApi')
69            }
70        }
71
72        commonMain {
73            dependencies {
74                implementation kotlin('stdlib')
75                implementation "org.jetbrains.kotlinx:kotlinx-serialization-core:$serialization_version"
76                implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$serialization_version"
77                implementation "org.jetbrains.kotlinx:kotlinx-serialization-protobuf:$serialization_version"
78                implementation "org.jetbrains.kotlinx:kotlinx-serialization-cbor:$serialization_version"
79            }
80        }
81        commonTest {
82            dependencies {
83                implementation kotlin('test-common')
84                implementation kotlin('test-annotations-common')
85            }
86        }
87        jvmMain {
88            dependencies {
89                implementation kotlin('stdlib-jdk8')
90                implementation 'com.google.dagger:dagger:2.13'
91            }
92        }
93        jvmTest {
94            dependencies {
95                implementation kotlin('test')
96                implementation kotlin('test-junit')
97            }
98        }
99        jsMain {
100            dependencies {
101                implementation kotlin('stdlib-js')
102
103            }
104        }
105        jsTest {
106            dependencies {
107                implementation kotlin('test-js')
108            }
109        }
110        wasmJsMain {
111            dependencies {
112                api 'org.jetbrains.kotlin:kotlin-stdlib-wasm-js'
113            }
114        }
115        wasmJsTest {
116            dependencies {
117                api 'org.jetbrains.kotlin:kotlin-test-wasm-js'
118            }
119        }
120        wasmWasiMain {
121            dependencies {
122                api 'org.jetbrains.kotlin:kotlin-stdlib-wasm-wasi'
123            }
124        }
125        wasmWasiTest {
126            dependencies {
127                api 'org.jetbrains.kotlin:kotlin-test-wasm-wasi'
128            }
129        }
130    }
131
132    targets.all {
133        compilations.all {
134            kotlinOptions {
135                freeCompilerArgs += "-Xexpect-actual-classes"
136            }
137        }
138        compilations.main {
139            kotlinOptions {
140                allWarningsAsErrors = true
141            }
142        }
143    }
144}
145
146dependencies {
147    kapt 'com.google.dagger:dagger-compiler:2.13'
148}
149
150task run dependsOn "check"
151
152rootProject.extensions.findByType(org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension.class).with {
153    // canary nodejs that supports recent Wasm GC changes
154    it.nodeVersion = "21.0.0-v8-canary202309167e82ab1fa2"
155    it.nodeDownloadBaseUrl = "https://nodejs.org/download/v8-canary"
156}
157
158tasks.withType(org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask).configureEach {
159    args.add("--ignore-engines")
160}
161