Files
Bitsy d029b48e10 docs(readme): add a pinned-versions table; centralise every androidx pin
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.
2026-09-12 00:42:40 +02:00

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",
)
}
}