Files

84 lines
2.5 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 = "bzh.ajaury.chombev.shared"
androidResources {
enable = true
}
withHostTest {
isIncludeAndroidResources = true
}
}
sourceSets {
androidMain.dependencies {
implementation(libs.compose.uiToolingPreview)
}
commonMain.dependencies {
// Core modules
implementation(projects.core.coroutines)
implementation(projects.core.logging)
implementation(projects.core.model)
// Data modules
implementation(projects.data.resources)
// Feature modules
implementation(projects.feature.records)
implementation(projects.feature.webview)
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)
}