Files
Chom-Bev-e-Brezhoneg/core/audioplayer/build.gradle.kts
T

72 lines
1.9 KiB
Kotlin

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)
}
jvmMain.dependencies {
// Desktop audio: Ogg Vorbis SPI so javax.sound.sampled can decode .ogg
implementation(libs.vorbisspi)
}
commonMain.dependencies {
// Coroutines
implementation(libs.kotlinx.coroutinesCore)
// 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)
}
}
}