Files
figcraft/crates/text/Cargo.toml
T
BFlat 6ef899cdbb M7: download a missing free font from the Missing fonts window (#754) (#1510)
A missing family the suite's font store has (Google Fonts, Noto) gets a
Download button. The first one asks the user to allow downloading fonts,
then craft-libs' craft-font-store installs pinned, checksum-verified files
into the Craft apps' shared font folder on a thread of its own. The font
scan reads that folder; once installed the text fits the real font.

font.download / font.downloads drive the store as its agent: refused while
downloading is off, never able to turn it on. Desktop only.
2026-10-29 16:41:31 +07:00

35 lines
1.5 KiB
TOML

[package]
name = "figcraft-text"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "FigCraft text: font database (embedded craft-fonts + system fonts), shaping, line layout, glyph outlines"
[lints]
workspace = true
[dependencies]
figcraft-geom = { workspace = true }
figcraft-doc = { workspace = true }
skrifa = { workspace = true }
harfrust = { workspace = true }
# Colour emoji: sbix/CBDT strikes are PNG images the text layer decodes for the renderer.
png = { workspace = true }
unicode-bidi = { workspace = true }
unicode-segmentation = { workspace = true }
log = { workspace = true }
# Fonts that font managers (RightFont, FontBase, Typeface) activate without copying them into a font
# folder are known only to Core Text. Its safe wrappers list every available font's file (Core Text
# needs unsafe FFI, which the workspace forbids). 22.0 is the first release whose
# `get_descriptors` takes ownership of the array correctly (20.x and 21.x leak it on every scan);
# it brings core-foundation 0.10, core-graphics 0.25 and core-graphics-types 0.2 beside the older
# versions other crates use. Pinned exactly: review the diff before bumping.
# The suite's font store folder (fonts installed by any Craft app) is scanned with the system's.
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
craft-font-catalog = { workspace = true }
[target.'cfg(target_os = "macos")'.dependencies]
core-text = { version = "=22.0.0", default-features = false, features = ["link"] }
objc2 = "0.6"