mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 09:46:59 -06:00
#2027 gave vectorcraft-text and vectorcraft-engine a `bundled-fonts` feature for an embedder that supplies every document font at run time, but vectorcraft-ui-egui (and vectorcraft-mcp) named the engine with its default features, so an embedder that hosts the panels got the fonts whatever it asked for. Each now has a `bundled-fonts` feature of its own, on by default, that turns the engine's on, so a downstream user keeps the fonts unless it asks otherwise. For a member to leave the engine's default features out, the workspace has to declare the engine without them, as it already declares vectorcraft-text; the crates that used the engine's default now ask for the fonts: the three apps and vectorcraft-testkit. Off, vectorcraft-text's copy of the fonts (3.4 MB) is left out; theme.rs's own copies of five of them, the panels' interface faces, stay either way. Nothing the workspace builds changes: for every workspace member and for the whole workspace, with and without dev-dependencies, for all targets, wasm32-unknown-unknown, aarch64-apple-darwin and x86_64-pc-windows-msvc, `cargo tree -e normal[,dev] -f '{p} [{f}]'` resolves the same features for every package as on main, apart from the new feature names (the engine's `default` no longer listed; ui-egui's and mcp's `bundled-fonts` and `default`). A test of the panels can't see their configuration without the fonts (their dev-dependencies turn them on), so `cargo xtask ci`'s `no-bundled-fonts` step now also reads that tree for vectorcraft-ui-egui and vectorcraft-mcp: with their default features it must show the fonts, and without them, for any target (a wasm-only dependency too), it must not. Documented in docs/development.md (Fonts › Leaving out the bundled fonts). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
49 lines
2.0 KiB
TOML
49 lines
2.0 KiB
TOML
[package]
|
|
name = "vectorcraft-cli"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
publish = false
|
|
description = "VectorCraft command line: MCP server (stdio) and headless batch runs"
|
|
|
|
[[bin]]
|
|
name = "vectorcraft-cli"
|
|
path = "src/main.rs"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
vectorcraft-color = { workspace = true }
|
|
vectorcraft-doc = { workspace = true }
|
|
vectorcraft-engine = { workspace = true, features = ["bundled-fonts"] }
|
|
vectorcraft-format = { workspace = true }
|
|
vectorcraft-geom = { workspace = true }
|
|
vectorcraft-svg = { workspace = true }
|
|
vectorcraft-mcp = { workspace = true }
|
|
vectorcraft-render = { workspace = true }
|
|
vectorcraft-text = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
log = { workspace = true }
|
|
|
|
# `perf` on Windows (src/perf.rs) reads how busy the processors are (GetSystemTimes) and this
|
|
# process's working set (GetProcessMemoryInfo) through winsafe's safe wrappers over Win32 (MIT),
|
|
# which the desktop app's src/gpu.rs also uses.
|
|
[target.'cfg(windows)'.dependencies]
|
|
winsafe = { version = "0.0.29", default-features = false, features = ["kernel", "psapi"] }
|
|
|
|
# DirectWrite's system font collection (the desktop app's src/system_fonts.rs, shared): fonts that
|
|
# font services such as Adobe Fonts load in place (#579). MIT OR Apache-2.0.
|
|
[target.'cfg(all(windows, not(target_vendor = "win7")))'.dependencies]
|
|
windows = { version = "0.62", features = ["Win32_Graphics_DirectWrite"] }
|
|
|
|
# CoreText's font manager (the desktop app's src/mac_fonts.rs, shared): fonts that apps and font
|
|
# managers register from their own folders (#579). Zlib OR Apache-2.0 OR MIT.
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
objc2-core-foundation = { version = "0.3", default-features = false, features = ["std", "CFArray", "CFString", "CFURL"] }
|
|
objc2-core-text = { version = "0.3", default-features = false, features = ["std", "CTFontManager"] }
|
|
|
|
[dev-dependencies]
|
|
vectorcraft-testkit = { workspace = true }
|
|
serde_json = { workspace = true }
|