import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidMultiplatformLibrary) alias(libs.plugins.composeMultiplatform) alias(libs.plugins.composeCompiler) alias(libs.plugins.kotlinSerialization) } kotlin { listOf( iosArm64(), iosSimulatorArm64(), ).forEach { iosTarget -> iosTarget.binaries.framework { baseName = "Shared" isStatic = true } } jvm() js { browser() } @OptIn(ExperimentalWasmDsl::class) wasmJs { browser() } androidLibrary { namespace = "fr.ajaury.gwenedeg.shared" compileSdk = libs.versions.androidCompileSdk .get() .toInt() minSdk = libs.versions.androidMinSdk .get() .toInt() compilerOptions { jvmTarget = JvmTarget.JVM_11 } androidResources { enable = true } withHostTest { isIncludeAndroidResources = true } } sourceSets { androidMain.dependencies { implementation(libs.compose.uiToolingPreview) } commonMain.dependencies { // Audio player module implementation(projects.core.audioplayer) implementation(libs.compose.runtime) implementation(libs.compose.foundation) implementation(libs.compose.material3) implementation(libs.compose.ui) implementation(libs.compose.components.resources) implementation(libs.compose.uiToolingPreview) // Lifecycle implementation(libs.lifecycle.viewmodelCompose) implementation(libs.lifecycle.runtimeCompose) implementation(libs.lifecycle.viewmodelNavigation3) // Navigation implementation(libs.navigation3) // DI implementation(project.dependencies.platform(libs.koin.bom)) implementation(libs.koin.core) implementation(libs.koin.core.viewmodel) implementation(libs.koin.compose) implementation(libs.koin.compose.viewmodel) } commonTest.dependencies { implementation(libs.kotlin.test) } jsMain.dependencies { implementation(libs.wrappers.browser) } } } dependencies { androidRuntimeClasspath(libs.compose.uiTooling) }