mirror of
https://github.com/bitsycore/compose-desktop-native.git
synced 2026-10-05 18:57:26 +00:00
Coil 3.6.2 publishes linux + apple klibs for its core/network/svg modules but NO mingwX64 anywhere, and NO desktop-native artifact at all for the compose layer. The sources are target-agnostic, so the port re-declares the targets and rebuilds them: :coil:coil-core coil3.* core (Skia-based decoding) :coil:coil the singleton ImageLoader facade :coil:coil-compose-core AsyncImage / rememberAsyncImagePainter internals :coil:coil-compose the public compose entry points :coil:coil-svg SVG decoding via skiko SVGDOM :coil:coil-network-core shared network-fetcher plumbing :coil:coil-network-ktor3 Ktor 3 fetcher, on the port's existing ktor pin Vendored VERBATIM from coil-kt/coil @ 3.6.2 (new COIL_REF pin + manifests); 152 files, zero local edits - all of it compiled unmodified. SOURCE-SET COLLAPSE: the port has no android, jvm or js target, so upstream's nonAndroidMain / nonJvmCommonMain / nonJsCommonMain all apply to every target here. They do NOT merge into nativeMain though: several declare `expect`s whose `actual`s live in upstream nativeMain, and siblings in one source set is a hard error. So they keep their own level above it. TWO PARALLEL SKIKO BRANCHES in coil-core / coil-svg / coil-compose-core: upstream's non-android code uses org.jetbrains.skia.* directly, so the INTERMEDIATE source set holding it needs skiko on its own compile classpath (a shared-metadata compilation is a real compile). macOS/Linux take the official skiko and mingwX64 takes the bitsycore fork, and the two cannot share an intermediate - so mingw gets a parallel branch over the same srcDirs, the same shape :compose:ui:ui-graphics already uses. Kotlin emits no metadata compilation for the single-target fork branch, so the two never collide. coil-compose-core declares the whole ui / foundation family DIRECTLY rather than leaning on foundation's transitives - the granular-metadata trap from CLAUDE.md's "Common pitfalls": a substituted coord's transitives drop off the commonMain metadata classpath. Published as com.bitsycore.coil3:<module>; bridge substitution rules added so consumers keep declaring the official io.coil-kt.coil3 coordinates.
45 lines
3.6 KiB
Plaintext
45 lines
3.6 KiB
Plaintext
# :coil:coil-svg - SVG decoding. Upstream: linux + apple, no mingwX64.
|
|
# The non-android decoder goes through skiko's SVGDOM.
|
|
# Upstream source sets collapse onto this port: it has NO android, jvm or js
|
|
# target, so nonAndroidMain / nonJvmCommonMain / nonJsCommonMain / nativeMain all
|
|
# apply to EVERY target here. They land in TWO trees, not one: the non* sets keep
|
|
# their own level (src/vendor/nonAndroid) ABOVE src/vendor/native, because some of
|
|
# them declare `expect`s whose `actual`s live in upstream nativeMain - collapsing
|
|
# both into one source set makes expect and actual siblings, which is an error. appleMain is macosArm64
|
|
# only and nonAppleMain is linux + mingw, so those two keep their own trees (the
|
|
# build file wires a `nonAppleMain` intermediate; appleMain comes from the default
|
|
# hierarchy template).
|
|
SET_REPO=https://github.com/coil-kt/coil@<COIL_REF>
|
|
|
|
SET_FOLDER=coil-svg/src
|
|
|
|
commonMain/kotlin/ -> src/vendor/common/kotlin/
|
|
# | commonMain/kotlin/coil3/svg/Svg.kt -> src/vendor/common/kotlin/coil3/svg/Svg.kt
|
|
# | commonMain/kotlin/coil3/svg/SvgDecoder.kt -> src/vendor/common/kotlin/coil3/svg/SvgDecoder.kt
|
|
# | commonMain/kotlin/coil3/svg/decodeUtils.kt -> src/vendor/common/kotlin/coil3/svg/decodeUtils.kt
|
|
# | commonMain/kotlin/coil3/svg/internal/SvgDecoderServiceLoaderTarget.kt -> src/vendor/common/kotlin/coil3/svg/internal/SvgDecoderServiceLoaderTarget.kt
|
|
# | commonMain/kotlin/coil3/svg/internal/parseSvg.kt -> src/vendor/common/kotlin/coil3/svg/internal/parseSvg.kt
|
|
# | commonMain/kotlin/coil3/svg/internal/utils.kt -> src/vendor/common/kotlin/coil3/svg/internal/utils.kt
|
|
nonAndroidMain/kotlin/ -> src/vendor/nonAndroid/kotlin/
|
|
# | nonAndroidMain/kotlin/coil3/svg/SvgImage.nonAndroid.kt -> src/vendor/nonAndroid/kotlin/coil3/svg/SvgImage.nonAndroid.kt
|
|
# | nonAndroidMain/kotlin/coil3/svg/internal/parseSvg.nonAndroid.kt -> src/vendor/nonAndroid/kotlin/coil3/svg/internal/parseSvg.nonAndroid.kt
|
|
# | nonAndroidMain/kotlin/coil3/svg/internal/utils.nonAndroid.kt -> src/vendor/nonAndroid/kotlin/coil3/svg/internal/utils.nonAndroid.kt
|
|
nonJvmCommonMain/kotlin/ -> src/vendor/nonAndroid/kotlin/
|
|
# | nonJvmCommonMain/kotlin/coil3/svg/internal/utils.nonJvmCommon.kt -> src/vendor/nonAndroid/kotlin/coil3/svg/internal/utils.nonJvmCommon.kt
|
|
nativeMain/kotlin/ -> src/vendor/native/kotlin/
|
|
# | nativeMain/kotlin/coil3/svg/internal/SvgDecoderServiceLoaderTarget.native.kt -> src/vendor/native/kotlin/coil3/svg/internal/SvgDecoderServiceLoaderTarget.native.kt
|
|
|
|
# >>> ---- DIAGNOSTIC GAPS ---- <<<<
|
|
# androidMain (4)
|
|
# | androidMain/kotlin/coil3/svg/SvgImage.android.kt -> src/vendor/android/kotlin/coil3/svg/SvgImage.android.kt
|
|
# | androidMain/kotlin/coil3/svg/imageRequests.android.kt -> src/vendor/android/kotlin/coil3/svg/imageRequests.android.kt
|
|
# | androidMain/kotlin/coil3/svg/internal/parseSvg.android.kt -> src/vendor/android/kotlin/coil3/svg/internal/parseSvg.android.kt
|
|
# | androidMain/kotlin/coil3/svg/internal/utils.android.kt -> src/vendor/android/kotlin/coil3/svg/internal/utils.android.kt
|
|
# jsMain (1)
|
|
# | jsMain/kotlin/coil3/svg/internal/SvgDecoderServiceLoaderTarget.js.kt -> src/vendor/js/kotlin/coil3/svg/internal/SvgDecoderServiceLoaderTarget.js.kt
|
|
# jvmCommonMain (1)
|
|
# | jvmCommonMain/kotlin/coil3/svg/internal/utils.jvmCommon.kt -> src/vendor/jvmCommon/kotlin/coil3/svg/internal/utils.jvmCommon.kt
|
|
# wasmJsMain (1)
|
|
# | wasmJsMain/kotlin/coil3/svg/internal/SvgDecoderServiceLoaderTarget.wasmJs.kt -> src/vendor/wasmJs/kotlin/coil3/svg/internal/SvgDecoderServiceLoaderTarget.wasmJs.kt
|
|
# <<< ---- DIAGNOSTIC GAPS ---- >>>>
|