plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.library) alias(libs.plugins.jetbrainsCompose) alias(libs.plugins.compose) alias(libs.plugins.kotlin.serialization) } kotlin { jvmToolchain(21) androidTarget() listOf(iosArm64(), iosSimulatorArm64()).forEach { it.binaries.framework { baseName = "Pihelper" } } jvm("desktop") sourceSets { val commonMain by getting { dependencies { implementation(libs.ktor.client.core) implementation(libs.ktor.client.cio) implementation(libs.ktor.client.logging) implementation(libs.ktor.client.serialization) implementation(libs.ktor.client.content.negotiation) implementation(libs.kotlinx.coroutines.core) implementation(libs.kotlinx.datetime) implementation(libs.kotlinx.serialization.json) api(libs.multiplatform.settings) api(compose.runtime) api(compose.foundation) api(compose.material3) @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) api(compose.components.resources) } } val androidMain by getting { dependencies { api(compose.runtime) } } val iosArm64Main by getting val iosSimulatorArm64Main by getting val iosMain by creating { dependsOn(commonMain) iosArm64Main.dependsOn(this) iosSimulatorArm64Main.dependsOn(this) dependencies { } } val desktopMain by getting { dependencies { implementation(compose.desktop.common) implementation(compose.uiTooling) } } } } android { sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") compileSdk = libs.versions.maxSdk.get().toInt() defaultConfig { minSdk = libs.versions.minSdk.get().toInt() } buildTypes { release { consumerProguardFiles("proguard-rules.pro") } } namespace = "com.wbrawner.pihelper.shared" }