mirror of
https://github.com/bitsycore/compose-desktop-native.git
synced 2026-10-05 10:47:26 +00:00
The table covers the toolchain (Kotlin, Compose Multiplatform, SDL3, both skiko builds), the Compose libraries with official-vs-port coordinates side by side, the vendored ecosystem libraries with the reason each one is vendored, the androidx artifacts used as-is, and the infrastructure pins. To make that table a contract rather than prose, every androidx coordinate now comes from the version catalog instead of being written literally in six build files. That surfaced a real inconsistency: androidx.navigation3:navigation3-runtime was pinned at 1.1.4 in :compose:ui:ui and demo's commonMain but 1.2.0-alpha05 in :navigation3:navigation3-ui and demo's jvmMain. Gradle resolved the conflict to the highest, so the build was fine, but nothing said which was intended - now there is one entry. Also records WHY Kotlin stays on 2.4.0 rather than dropping to the 2.2.20 that CMP 1.12.0 is built with, and why material3 is 1.12.0-alpha03 at CMP 1.12.0.
45 lines
1.7 KiB
Kotlin
45 lines
1.7 KiB
Kotlin
// :navigation3-ui - androidx.navigation3.ui.* (NavDisplay + scene machinery), vendored
|
|
// VERBATIM from JetBrains/compose-multiplatform-core (navigation3/navigation3-ui) into
|
|
// src/vendor/. Upstream androidx navigation3-ui has no Kotlin/Native desktop artifact, but
|
|
// the JetBrains fork does - so we sync it like the compose modules. The 3 default
|
|
// transition-spec `expect`s are actualised from the fork's macosMain (platform-agnostic).
|
|
//
|
|
// navigation3-runtime + lifecycle-viewmodel-navigation3 are Maven deps (api-exposed by :ui).
|
|
// Provenance = compose-fork.txt + scripts/compose-fork/compose.properties. Never hand-edit
|
|
// src/vendor - change the manifest + `python scripts/compose-fork/sync.py navigation3/navigation3-ui`.
|
|
//
|
|
// Publication artifactId: desktop-navigation3-ui.
|
|
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(":compose:animation:animation"))
|
|
api(project(":compose:ui:ui"))
|
|
api(libs.androidx.navigation3.runtime)
|
|
}
|
|
kotlin.srcDir("src/vendor/common/kotlin")
|
|
}
|
|
nativeMain {
|
|
kotlin.srcDir("src/vendor/native/kotlin")
|
|
}
|
|
}
|
|
compilerOptions {
|
|
freeCompilerArgs.addAll(
|
|
"-Xexpect-actual-classes",
|
|
"-opt-in=androidx.compose.ui.ExperimentalComposeUiApi",
|
|
"-opt-in=androidx.compose.ui.InternalComposeUiApi",
|
|
"-opt-in=androidx.compose.animation.ExperimentalAnimationApi",
|
|
"-opt-in=androidx.compose.animation.ExperimentalSharedTransitionApi",
|
|
)
|
|
}
|
|
}
|