plugins { kotlin("multiplatform") id("kotlinx-serialization") id("com.android.library") } kotlin { val ktor_version = "2.3.4" val settings_version = "0.8.1" android() jvmToolchain(17) listOf( iosX64(), iosArm64(), iosSimulatorArm64() ).forEach { it.binaries.framework { baseName = "shared" // Fix builds in Xcode 15 if (System.getenv("XCODE_VERSION_MAJOR") == "1500") { linkerOpts += "-ld64" } } } sourceSets { val commonMain by getting { dependencies { implementation("io.ktor:ktor-client-core:$ktor_version") implementation("io.ktor:ktor-client-logging:$ktor_version") implementation("io.ktor:ktor-serialization-kotlinx-json:$ktor_version") implementation("io.ktor:ktor-client-content-negotiation:$ktor_version") implementation("io.insert-koin:koin-core:3.1.4") implementation("ch.qos.logback:logback-classic:1.2.6") implementation("com.russhwolf:multiplatform-settings:$settings_version") implementation("com.russhwolf:multiplatform-settings-no-arg:$settings_version") implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.3.1") } } val androidMain by getting { dependencies { implementation("io.ktor:ktor-client-cio:$ktor_version") } } val iosX64Main by getting val iosArm64Main by getting val iosSimulatorArm64Main by getting val iosMain by creating { dependsOn(commonMain) iosX64Main.dependsOn(this) iosArm64Main.dependsOn(this) iosSimulatorArm64Main.dependsOn(this) dependencies { implementation("io.ktor:ktor-client-darwin:$ktor_version") } } } } android { compileSdk = 34 sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") defaultConfig { minSdk = 21 ndk { abiFilters.clear() abiFilters += listOf("armeabi-v7a", "arm64-v8a") } } namespace = "mx.trackermap.TrackerMap" compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } }