11package common
22
3- import org.gradle.api.GradleException
43import org.gradle.api.Project
54import org.gradle.api.file.DuplicatesStrategy
65import org.gradle.kotlin.dsl.*
@@ -52,7 +51,6 @@ fun KotlinMultiplatformExtension.jvmTarget(project: Project) =
5251 api(libs.kotlinx.coroutines.slf4j)
5352 api(libs.jspecify)
5453 api(libs.bundles.keystore)
55- // https://kotlinlang.org/docs/ksp-multiplatform.html
5654 api(libs.google.auto.annotations)
5755 ksp(libs.ksp.auto.service)
5856 }
@@ -75,6 +73,25 @@ fun KotlinMultiplatformExtension.jvmTarget(project: Project) =
7573 }
7674 }
7775
76+ fun KotlinMultiplatformExtension.webDeps (project : Project ) =
77+ with (project) {
78+ sourceSets {
79+ webMain {
80+ dependencies {
81+ api(libs.ktor.client.js)
82+ api(libs.kotlinx.browser)
83+ // api(npm("@js-joda/timezone", libs.versions.npm.jsjoda.tz.get()))
84+ // ksp(project(":meta:ksp:processor"))
85+ }
86+
87+ // kotlin.srcDir("src/main/kotlin")
88+ // resources.srcDir("src/main/resources")
89+ }
90+
91+ webTest { kotlin {} }
92+ }
93+ }
94+
7895fun KotlinMultiplatformExtension.jsTarget (project : Project ) =
7996 with (project) {
8097 js {
@@ -103,23 +120,7 @@ fun KotlinMultiplatformExtension.jsTarget(project: Project) =
103120 compilerOptions { configureKotlinJs() }
104121 testRuns.configureEach { executionTask.configure {} }
105122 }
106-
107- sourceSets {
108- jsMain {
109- dependencies {
110- api(libs.ktor.client.js)
111- api(libs.kotlin.wrappers.browser)
112- api(libs.kotlin.wrappers.css)
113- // api(npm("@js-joda/timezone", libs.versions.npm.jsjoda.tz.get()))
114- // ksp(project(":meta:ksp:processor"))
115- }
116-
117- // kotlin.srcDir("src/main/kotlin")
118- // resources.srcDir("src/main/resources")
119- }
120-
121- jsTest { kotlin {} }
122- }
123+ webDeps(project)
123124 }
124125
125126fun KotlinMultiplatformExtension.wasmJsTarget (project : Project ) =
@@ -159,18 +160,7 @@ fun KotlinMultiplatformExtension.wasmJsTarget(project: Project) =
159160 compilerOptions { configureKotlinJs() }
160161 testRuns.configureEach { executionTask.configure {} }
161162 }
162-
163- sourceSets {
164- wasmJsMain {
165- dependencies {
166- api(libs.ktor.client.js)
167- api(libs.kotlinx.browser)
168- api(libs.kotlin.wrappers.browser)
169- // api(npm("@js-joda/timezone", libs.versions.npm.jsjoda.tz.get()))
170- }
171- }
172- wasmJsTest { kotlin {} }
173- }
163+ webDeps(project)
174164 }
175165
176166fun KotlinMultiplatformExtension.wasmWasiTarget (project : Project ) =
@@ -205,21 +195,6 @@ fun KotlinMultiplatformExtension.wasmWasiTarget(project: Project) =
205195 }
206196 }
207197
208- fun KotlinMultiplatformExtension.hostNativeTarget (configure : KotlinNativeTarget .() -> Unit = {}) =
209- when {
210- Platform .isMac -> {
211- macosArm64 { configure() }
212- macosX64 { configure() }
213- }
214- Platform .isLinux -> {
215- linuxArm64 { configure() }
216- linuxX64 { configure() }
217- }
218- Platform .isWin -> mingwX64 { configure() }
219- else ->
220- throw GradleException (" Host OS '${Platform .currentOS} ' is not supported in Kotlin/Native" )
221- }
222-
223198fun KotlinMultiplatformExtension.nativeTargets (
224199 project : Project ,
225200 configure : KotlinNativeTarget .() -> Unit = {},
@@ -247,14 +222,7 @@ fun KotlinMultiplatformExtension.nativeTargets(
247222 mingwX64 { configureAll() }
248223 }
249224
250- sourceSets {
251- nativeMain {
252- dependencies {
253- // On native targets, only curl currently supports TLS
254- api(libs.ktor.client.curl)
255- }
256- }
257- }
225+ sourceSets { nativeMain { dependencies { api(libs.ktor.client.curl) } } }
258226 }
259227
260228fun KotlinMultiplatformExtension.addKspDependencyForAllTargets (
0 commit comments