compat.fribidi
#includeGNU FriBidi 1.0.16 — the Unicode bidirectional algorithm (UAX #9), the dependency pango needs for right-to-left text
#include <fribidi.h>
mcpp add compat.fribidi@1.0.16
Usage
From this repository's own test project — built and run by CI, not written for the website.
// compat.fribidi — the Unicode bidirectional algorithm, on text that needs it.
//
// WHAT THIS ASSERTS AND WHY
//
// The tables are the whole package. fribidi's seven `.tab.i` files encode the
// Unicode Character Database, and a build that compiled none of them would
// still link, still run, and quietly treat Arabic as left-to-right. So every
// check below asks the library a question whose answer is IN a table:
//
// the Unicode version fribidi-unicode-version.h, generated upstream
// bidi character types bidi-type.tab.i
// base direction the resolution algorithm over those types
// visual reordering UAX #9 itself, the reason pango needs this
// mirroring mirroring.tab.i — "(" becomes ")" in an RTL run
// joining types joining-type.tab.i, which shapes Arabic
//
// A pass here means the tarball's pre-generated tables really were compiled —
// the claim that lets this be a descriptor instead of a fork.
#ifdef __linux__
// ⚠️ WRAPPED IN extern "C". fribidi's public headers have no `extern "C"` of
// …
tests/examples/fribidi/tests/fribidi.cpp · project tests/examples/fribidi
Build
- targets
fribidi (lib)- language
c++23- C standard
c11- import std
- no
- include dirs
mcpp_generated, */lib, *
Sources (1)
*/lib/*.c
Generated files
mcpp_generated/config.hmcpp_generated/fribidi-config.h