thorvg-sys 0.1.0+thorvg-1.0.5
·
28 commits
to main
since this release
First release under the crate's own versioning. Supersedes the yanked
1.0.0 / 1.0.1 / 1.0.5, which mirrored the upstream ThorVG version
number 1:1 — a scheme abandoned because it left no room to publish
sys-crate-only changes (build system, bare-metal support) while upstream
stayed at 1.0.5. Bundles ThorVG 1.0.5.
Changed
- Versioning scheme — the crate version is now independent of
upstream; the bundled ThorVG release is carried as+thorvg-X.Y.Z
build metadata. The previous upstream-mirroring1.0.xreleases are
yanked.
Build system
- Replaced the meson + ninja build with the
cccrate — ThorVG is
compiled from source via Cargo's configured (cross-)compiler; no meson
or ninja required. - Feature-gated loaders and capabilities —
lottie,svg,png,
fonts,expressions,threads,file-ioCargo features select
which ThorVG components compile (all enabled by default; embedded users
disable defaults and pick what they need). - bindgen now passes an explicit
--target=to libclang on host builds.
Bare-metal support (target_os = "none")
- Toolchain-agnostic cross-compilation pipeline, split into bare-metal
vs. SDK-runtime policy. - Vendors picolibc (submodule pinned to 1.8.11) as the libc on
bare-metal: compile-timepicolibc.hconfiguration plus a compile-only
validation phase inbuild.rs. - Per-concern runtime stubs welded to picolibc declarations with weak
linkage; bridges newlib's__errno()to picolibc's plainerrno;
stubs_on_exit. - RISC-V canonical-multilib selection;
expressionsenabled on
bare-metal ESP32-C6.
Vendored ThorVG patches
- Local shims layered on ThorVG 1.0.5 to support bare-metal builds:
absearchshim, a Lottie-loader shim extension, and runtime-stub
welding acrosstvgLock.h,tvgInitializer.cpp,tvgRender.cpp,
tvgSwRenderer.cpp, andtvgSwMemPool.cpp.