60 lines
2.0 KiB
Kotlin
60 lines
2.0 KiB
Kotlin
plugins {
|
|
id("gwenedeg.kmp.library")
|
|
id("gwenedeg.compose")
|
|
alias(libs.plugins.kotlinSerialization)
|
|
}
|
|
|
|
kotlin {
|
|
androidLibrary {
|
|
namespace = "bzh.ajaury.chombev.webview"
|
|
}
|
|
|
|
sourceSets {
|
|
androidMain.dependencies {
|
|
implementation(libs.compose.uiToolingPreview)
|
|
implementation(libs.androidx.webkit)
|
|
}
|
|
// webMain is the js + wasmJs intermediate source set from the default hierarchy template.
|
|
webMain.dependencies {
|
|
// DOM access (document, navigator) to embed the page in an <iframe>
|
|
implementation(libs.kotlinx.browser)
|
|
}
|
|
wasmJsMain {
|
|
// HTMLIFrameElement interop on Wasm requires this opt-in.
|
|
languageSettings.optIn("kotlin.js.ExperimentalWasmJsInterop")
|
|
}
|
|
commonMain.dependencies {
|
|
// Core modules
|
|
implementation(projects.core.logging)
|
|
|
|
// Reads the bundled offline page snapshots and web strings
|
|
implementation(projects.data.resources)
|
|
|
|
// Serialization: WebPage is carried in the serializable navigation back stack
|
|
implementation(libs.kotlinx.serializationJson)
|
|
|
|
// UI - Compose
|
|
implementation(libs.compose.runtime)
|
|
implementation(libs.compose.foundation)
|
|
implementation(libs.compose.material3)
|
|
implementation(libs.compose.ui)
|
|
implementation(libs.compose.uiToolingPreview)
|
|
implementation(libs.compose.components.resources)
|
|
|
|
// Lifecycle
|
|
implementation(libs.lifecycle.viewmodelCompose)
|
|
implementation(libs.lifecycle.runtimeCompose)
|
|
|
|
// DI
|
|
implementation(project.dependencies.platform(libs.koin.bom))
|
|
implementation(libs.koin.core)
|
|
implementation(libs.koin.core.viewmodel)
|
|
implementation(libs.koin.compose.viewmodel)
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
androidRuntimeClasspath(libs.compose.uiTooling)
|
|
}
|