86 lines
2.7 KiB
Kotlin
86 lines
2.7 KiB
Kotlin
plugins {
|
|
id("gwenedeg.kmp.library")
|
|
id("gwenedeg.compose")
|
|
alias(libs.plugins.kotlinSerialization)
|
|
}
|
|
|
|
kotlin {
|
|
// Targets are declared by the convention plugin; these calls return the
|
|
// existing targets, so this only adds the iOS framework packaging.
|
|
listOf(
|
|
iosArm64(),
|
|
iosSimulatorArm64(),
|
|
).forEach { iosTarget ->
|
|
iosTarget.binaries.framework {
|
|
baseName = "Shared"
|
|
isStatic = true
|
|
}
|
|
}
|
|
|
|
androidLibrary {
|
|
namespace = "fr.ajaury.gwenedeg.shared"
|
|
androidResources {
|
|
enable = true
|
|
}
|
|
withHostTest {
|
|
isIncludeAndroidResources = true
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
androidMain.dependencies {
|
|
implementation(libs.compose.uiToolingPreview)
|
|
implementation(libs.androidx.webkit)
|
|
}
|
|
commonMain.dependencies {
|
|
// Core modules
|
|
implementation(projects.core.audioplayer)
|
|
implementation(projects.core.coroutines)
|
|
implementation(projects.core.logging)
|
|
implementation(projects.core.model)
|
|
|
|
// Data modules
|
|
implementation(projects.data.playback)
|
|
implementation(projects.data.preferences)
|
|
implementation(projects.data.records)
|
|
implementation(projects.data.resources)
|
|
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.uiToolingPreview)
|
|
implementation(libs.compose.components.resources)
|
|
|
|
// 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)
|
|
}
|
|
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)
|
|
}
|