tectonic/crates/bridge_harfbuzz
Michael Huttner d5a605d797 fix install error, when harfbuzz folder is not created 2024-02-22 12:47:12 +01:00
..
harfbuzz@894a1f72ee bridge_harfbuzz: update to upstream 8.3.0 2023-11-25 16:33:22 -05:00
src bridge_harfbuzz: no longer require ICU 2023-09-17 14:45:47 -04:00
CHANGELOG.md crates/bridge_harfbuzz: add this 2021-01-09 18:00:50 -05:00
Cargo.toml bridge_harfbuzz: no longer require ICU 2023-09-17 14:45:47 -04:00
README.md BREAKING: fix up include-dir handling 2021-01-30 11:47:09 -05:00
build.rs fix install error, when harfbuzz folder is not created 2024-02-22 12:47:12 +01:00

README.md

The tectonic_bridge_harfbuzz crate

This crate is part of the Tectonic project. It exposes the C API of the Harfbuzz text shaping library the Rust/Cargo build framework, with no Rust bindings. By default, a static, local version of the Harfbuzz library is built.

While there are a variety of other Harfbuzz-related crates in the Rust ecosystem, Tectonic has specialized needs (e.g. support for the graphite2 smart font library). Hence this specialized crate.

If your project depends on this crate, Cargo will export for your build script an environment variable named DEP_HARFBUZZ_INCLUDE_PATH, which will be a semicolon-separated list of C include directories enabling your code to include the harfbuzz/ headers.

You will need to ensure that your Rust code actually references this crate in order for the linker to include linked libraries. A use statement will suffice:

#[allow(unused_imports)]
#[allow(clippy::single_component_path_imports)]
use tectonic_bridge_harfbuzz;

Cargo features

This crate provides the following Cargo features:

  • external-harfbuzz: instead of building a local copy of Harfbuzz, discover it as an external dependency using pkg-config or vcpkg, as determined by the tectonic_dep_support crate. This requires that all libraries upon which Harfbuzz depends also be found externally, since the external library can't then link against a local vendored version.