mirror of
https://github.com/bitsycore/compose-desktop-native.git
synced 2026-10-05 10:47:26 +00:00
bitsycore/pulse-mvi targets android / jvm / ios / js / wasm and publishes NO desktop-native artifact at all, so all four modules are vendored: :pulse:pulse the MVI core (store, state, intents) :pulse:pulse-viewmodel ViewModel binding :pulse:pulse-savedstate SavedStateHandle persistence :pulse:pulse-compose Compose bindings Vendored VERBATIM @ 0.3.7 (new PULSE_REF pin + manifests); 14 files, commonMain only, zero local edits. Pinned to the TAG, not main: the three commits past 0.3.7 are docs and CI only, and a tag is the durable ref this repo's vendoring rules ask for. GOOGLE lifecycle coordinates again, not upstream's org.jetbrains.androidx.* mirrors - same duplicate-classes reason as the Koin modules. COORDINATES: upstream publishes com.bitsycore.lib:*, which this repo must not republish under the same name. The port publishes com.bitsycore.pulse:* instead and the bridge substitutes com.bitsycore.lib:* -> the project modules on native configurations, so consumers keep declaring the upstream coordinate.
36 lines
1.3 KiB
Kotlin
36 lines
1.3 KiB
Kotlin
// :pulse:pulse-viewmodel - vendored VERBATIM from bitsycore/pulse-mvi into src/vendor.
|
|
// ViewModel binding for the MVI store.
|
|
// Upstream targets android / jvm / ios / js / wasm but NO desktop native, so the
|
|
// port re-declares the targets and rebuilds the same commonMain sources.
|
|
//
|
|
// Lifecycle uses the GOOGLE coordinates (androidx.lifecycle:*) rather than
|
|
// upstream's org.jetbrains.androidx.* mirrors - the port already resolves the
|
|
// google ones, and mixing both puts the same classes on the path twice.
|
|
//
|
|
// Provenance = compose-fork.txt + scripts/compose-fork/compose.properties. Never
|
|
// hand-edit src/vendor - change the manifest + re-run
|
|
// `python scripts/compose-fork/sync.py pulse/pulse-viewmodel`.
|
|
plugins {
|
|
alias(libs.plugins.kotlin.multiplatform)
|
|
alias(libs.plugins.kotlin.plugin.compose)
|
|
}
|
|
|
|
val vHostSupportsMingw = rootProject.extra["vHostSupportsMingw"] as Boolean
|
|
|
|
kotlin {
|
|
linuxArm64(); linuxX64(); macosArm64(); if (vHostSupportsMingw) mingwX64()
|
|
applyDefaultHierarchyTemplate()
|
|
sourceSets {
|
|
commonMain {
|
|
dependencies {
|
|
api(project(":pulse:pulse"))
|
|
implementation(libs.androidx.lifecycle.viewmodel.compose)
|
|
}
|
|
kotlin.srcDir("src/vendor/common/kotlin")
|
|
}
|
|
}
|
|
compilerOptions {
|
|
freeCompilerArgs.add("-Xexpect-actual-classes")
|
|
}
|
|
}
|