109 lines
3.0 KiB
Kotlin
109 lines
3.0 KiB
Kotlin
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 {
|
|
// Core modules
|
|
implementation(projects.core.audioplayer)
|
|
implementation(projects.core.coroutines)
|
|
implementation(projects.core.logging)
|
|
|
|
// Data modules
|
|
implementation(projects.data.subtitle)
|
|
|
|
implementation(libs.compose.runtime)
|
|
implementation(libs.compose.foundation)
|
|
implementation(libs.compose.material3)
|
|
implementation(libs.compose.material.icons.extended)
|
|
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)
|
|
}
|
|
jvmTest.dependencies {
|
|
// Koin configuration validation
|
|
implementation(project.dependencies.platform(libs.koin.bom))
|
|
implementation(libs.koin.test)
|
|
}
|
|
jsMain.dependencies {
|
|
implementation(libs.wrappers.browser)
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
androidRuntimeClasspath(libs.compose.uiTooling)
|
|
}
|