plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.library) alias(libs.plugins.compose.multiplatform) alias(libs.plugins.kotlin.compose) alias(libs.plugins.kotlin.serialization) } kotlin { @OptIn(org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi::class) compilerOptions { freeCompilerArgs.add("-Xexpect-actual-classes") } applyDefaultHierarchyTemplate() androidTarget { compilations.all { kotlinOptions { jvmTarget = "17" } } } jvm("desktop") { compilations.all { kotlinOptions { jvmTarget = "17" } } } listOf( iosX64(), iosArm64(), iosSimulatorArm64(), ).forEach { target -> target.binaries.framework { baseName = "shared" isStatic = true } } sourceSets { commonMain.dependencies { implementation(compose.runtime) implementation(compose.foundation) implementation(compose.material3) implementation(compose.materialIconsExtended) implementation(compose.ui) implementation(compose.components.resources) implementation("org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4") implementation("org.jetbrains.androidx.navigation:navigation-compose:2.8.0-alpha10") implementation(libs.kotlinx.coroutines.core) implementation(libs.kotlinx.serialization.json) implementation(libs.ktor.client.core) implementation(libs.ktor.client.content.negotiation) implementation(libs.ktor.serialization.kotlinx.json) implementation(libs.multiplatform.settings) } commonTest.dependencies { implementation(libs.kotlin.test) implementation(libs.kotlinx.coroutines.test) implementation(libs.multiplatform.settings.test) } androidMain.dependencies { implementation(libs.kotlinx.coroutines.android) implementation(libs.androidx.security.crypto) implementation(libs.ktor.client.cio) implementation(libs.androidx.camera.core) implementation(libs.androidx.camera.camera2) implementation(libs.androidx.camera.lifecycle) implementation(libs.androidx.camera.view) } val desktopMain by getting { dependencies { implementation(libs.ktor.client.java) implementation(libs.kotlinx.coroutines.swing) } } iosMain.dependencies { implementation(libs.ktor.client.darwin) } } } android { namespace = "com.notemusicali.shared" compileSdk = 35 defaultConfig { minSdk = 26 } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } }