import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget plugins { kotlin("multiplatform") version "2.0.21" // kotlin_version kotlin("plugin.serialization") version "2.0.21" // kotlin_version } group = "org.openapitools" version = "1.0.0" val kotlin_version = "2.0.21" val coroutines_version = "1.9.0" val serialization_version = "1.7.3" val ktor_version = "3.0.1" repositories { mavenCentral() } kotlin { jvm() iosX64() iosArm64() iosSimulatorArm64() js { browser() nodejs() } sourceSets { commonMain { dependencies { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version") implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:$serialization_version") api("io.ktor:ktor-client-core:$ktor_version") api("io.ktor:ktor-client-serialization:$ktor_version") api("io.ktor:ktor-client-content-negotiation:$ktor_version") api("io.ktor:ktor-serialization-kotlinx-json:$ktor_version") api("org.jetbrains.kotlinx:kotlinx-datetime:0.4.1") } } commonTest { dependencies { implementation(kotlin("test")) implementation("io.ktor:ktor-client-mock:$ktor_version") } } jvmMain { dependencies { implementation(kotlin("stdlib-jdk7")) implementation("io.ktor:ktor-client-cio-jvm:$ktor_version") } } jvmTest { dependencies { implementation(kotlin("test-junit")) } } iosMain { dependencies { api("io.ktor:ktor-client-ios:$ktor_version") } } jsMain { dependencies { api("io.ktor:ktor-client-js:$ktor_version") } } all { languageSettings.apply { optIn("kotlin.Experimental") } } } } tasks { register("iosTest") { val device = project.findProperty("device")?.toString() ?: "iPhone 8" dependsOn("linkDebugTestIosX64") group = JavaBasePlugin.VERIFICATION_GROUP description = "Execute unit tests on ${device} simulator" doLast { val binary = kotlin.targets.getByName("iosX64").binaries.getTest("DEBUG") exec { commandLine("xcrun", "simctl", "spawn", device, binary.outputFile) } } } register("test") { dependsOn("allTests") } }