import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidMultiplatformLibrary) } kotlin { iosArm64() iosSimulatorArm64() jvm() js { browser() } @OptIn(ExperimentalWasmDsl::class) wasmJs { browser() } androidLibrary { namespace = "fr.ajaury.gwenedeg.core.audioplayer" compileSdk = libs.versions.androidCompileSdk .get() .toInt() minSdk = libs.versions.androidMinSdk .get() .toInt() compilerOptions { jvmTarget = JvmTarget.JVM_11 } } sourceSets { androidMain.dependencies { // Player audio implementation(libs.media3.exoplayer) implementation(libs.media3.common) } commonMain.dependencies { // DI implementation(project.dependencies.platform(libs.koin.bom)) implementation(libs.koin.core) } // webMain is the js + wasmJs intermediate source set from the default hierarchy template. webMain.dependencies { // Browser audio (HTMLAudioElement, document) for js + wasmJs implementation(libs.kotlinx.browser) } wasmJsMain { // HTMLAudioElement interop on Wasm requires this opt-in. languageSettings.optIn("kotlin.js.ExperimentalWasmJsInterop") } commonTest.dependencies { implementation(libs.kotlin.test) } } }