• Home
Name Date Size #Lines LOC

..--

.ci/12-May-2024-11488

.circleci/12-May-2024-177156

.github/workflows/12-May-2024-213168

docs/12-May-2024-5,5935,293

m4/12-May-2024-1,8091,492

perf/12-May-2024-15,62614,661

src/12-May-2024-121,03584,579

subprojects/12-May-2024-10385

test/12-May-2024-34,75829,436

util/12-May-2024-4,9653,721

.clang-formatD12-May-20241 KiB3936

.codecov.ymlD12-May-202484 86

.editorconfigD12-May-2024376 2418

AUTHORSD12-May-2024201 1514

BUILD.gnD12-May-20244 KiB10299

BUILD.mdD12-May-20241.2 KiB2817

CMakeLists.txtD12-May-202424.7 KiB745627

CONFIG.mdD12-May-20246.9 KiB151110

COPYINGD12-May-20241.8 KiB3932

Makefile.amD12-May-20242.3 KiB9774

NEWSD12-May-202473.4 KiB2,4671,872

OAT.xmlD12-May-20245.2 KiB8126

READMED01-Jan-19700

README.OpenSourceD12-May-2024625 1111

README.mdD12-May-20241.8 KiB3421

README.mingw.mdD12-May-20242.1 KiB4836

README.python.mdD12-May-2024961 3222

RELEASING.mdD12-May-20241.9 KiB4530

TESTING.mdD12-May-20241 KiB5640

THANKSD12-May-2024129 87

TODOD12-May-2024436 2915

autogen.shD12-May-20241.1 KiB4933

bundle.jsonD12-May-2024997 3333

configure.acD12-May-202414.3 KiB485422

git.mkD12-May-202412.3 KiB401293

harfbuzz.doapD12-May-2024775 2521

meson.buildD12-May-202412.5 KiB409348

meson_options.txtD12-May-20241.9 KiB3936

mingw-configure.shD12-May-2024757 2924

replace-enum-strings.cmakeD12-May-2024352 2117

README.OpenSource

1[
2    {
3        "Name"                  : "harfbuzz",
4        "License"               : "MIT License",
5        "License File"          : "COPYING",
6        "Version Number"        : "2.8.1",
7        "Owner"                 : "liyujia4@huawei.com",
8        "Upstream URL"          : "https://github.com/harfbuzz/harfbuzz/releases/tag/2.8.1",
9        "Description"           : "HarfBuzz is a text shaping engine. It primarily supports OpenType, but also Apple Advanced Typography. HarfBuzz is used in Android, Chrome, ChromeOS, Firefox, GNOME, GTK+, KDE, LibreOffice, OpenJDK, PlayStation, Qt, XeTeX, and other places."
10    }
11]

README.md

1[![Linux CI Status](https://github.com/harfbuzz/harfbuzz/workflows/linux-ci/badge.svg)](https://github.com/harfbuzz/harfbuzz/workflows/linux-ci/badge.svg)
2[![CircleCI Build Status](https://circleci.com/gh/harfbuzz/harfbuzz/tree/master.svg?style=svg)](https://circleci.com/gh/harfbuzz/harfbuzz/tree/master)
3[![OSS-Fuzz Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/harfbuzz.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html)
4[![Coverity Code Health](https://img.shields.io/coverity/scan/5450.svg)](https://scan.coverity.com/projects/behdad-harfbuzz)
5[![Codacy Code Health](https://api.codacy.com/project/badge/Grade/f17f1708783c447488bc8dd317150eaa)](https://app.codacy.com/app/behdad/harfbuzz)
6[![Codecov Code Coverage](https://codecov.io/gh/harfbuzz/harfbuzz/branch/master/graph/badge.svg)](https://codecov.io/gh/harfbuzz/harfbuzz)
7[![Coverals Code Coverage](https://img.shields.io/coveralls/harfbuzz/harfbuzz.svg)](https://coveralls.io/r/harfbuzz/harfbuzz)
8[![Packaging status](https://repology.org/badge/tiny-repos/harfbuzz.svg)](https://repology.org/project/harfbuzz/versions)
9[ABI Tracker](http://abi-laboratory.pro/tracker/timeline/harfbuzz/)
10
11This is HarfBuzz, a text shaping library.
12
13For bug reports, mailing list, and other information please visit:
14
15  http://harfbuzz.org/
16
17For license information, see [COPYING](COPYING).
18
19For build information, see [BUILD.md](BUILD.md).
20
21For custom configurations, see [CONFIG.md](CONFIG.md).
22
23For test execution, see [TESTING.md](TESTING.md).
24
25Documentation: https://harfbuzz.github.io
26
27
28<details>
29  <summary>Packaging status of HarfBuzz</summary>
30
31[![Packaging status](https://repology.org/badge/vertical-allrepos/harfbuzz.svg?header=harfbuzz)](https://repology.org/project/harfbuzz/versions)
32
33</details>
34

README.mingw.md

1For the development of HarfBuzz, the Microsoft shaping technology, Uniscribe,
2as a widely used and tested shaper is used as more-or-less OpenType reference
3implementation and that specially is important where OpenType specification
4is or wasn't that clear. For having access to Uniscribe on Linux/macOS these
5steps are recommended:
6
7You want to follow the 32bit instructions. The 64bit equivalents are included
8for reference.
9
101. Install Wine.
11   - Fedora: `dnf install wine`.
12
132. Install `mingw-w64` compiler.
14   - Fedora, 32bit: `dnf install mingw32-gcc-c++`
15   - Fedora, 64bit: `dnf install mingw64-gcc-c++`
16   - Debian: `apt install g++-mingw-w64`
17   - Mac: `brew install mingw-w64`
18
193. If you have drank the `meson` koolaid, look at `.ci/build-win32.sh` to see how to
20   invoke `meson` now, or just run that script.  Otherwise, here's how to use the
21   old trusty autotools instead:
22
23   a) Install dependencies.
24      - Fedora, 32bit: `dnf install mingw32-glib2 mingw32-cairo mingw32-freetype`
25      - Fedora, 64bit: `dnf install mingw64-glib2 mingw64-cairo mingw64-freetype`
26
27   b) Configure:
28     - `NOCONFIGURE=1 ./autogen.sh && mkdir winbuild && cd winbuild`
29     - 32bit: `../mingw-configure.sh i686`
30     - 64bit: `../mingw-configure.sh x86_64`
31
32Now you can use `hb-shape` by `(cd win32build/util && wine hb-shape.exe)`
33but if you like to shape with the Microsoft Uniscribe:
34
354. Bring a 32bit version of `usp10.dll` for yourself from `C:\Windows\SysWOW64\usp10.dll` of your
36   Windows installation (assuming you have a 64-bit installation, otherwise
37   `C:\Windows\System32\usp10.dll`) that it is not a DirectWrite proxy
38   ([for more info](https://en.wikipedia.org/wiki/Uniscribe)).
39   Rule of thumb, your `usp10.dll` should have a size more than 500kb, otherwise
40   it is designed to work with DirectWrite which Wine can't work with its original one.
41   You want a Uniscribe from Windows 7 or older.
42
43   Put the DLL in the folder you are going to run the next command,
44
455. `WINEDLLOVERRIDES="usp10=n" wine hb-shape.exe fontname.ttf -u 0061,0062,0063 --shaper=uniscribe`
46
47(`0061,0062,0063` means `abc`, use test/shaping/hb-unicode-decode to generate ones you need)
48

README.python.md

1To enable HarfBuzz bindings for Python among other languages, make sure
2you have latest version of gobject-introspection available.  On Ubuntu,
3you can install that this way:
4
5```bash
6sudo apt-get install libgirepository1.0-dev
7```
8
9And then run `meson setup` and make sure that `Introspection` is reported
10enabled in output.
11
12Compile and install.
13
14Make sure you have the installation lib dir in `LD_LIBRARY_PATH`, as needed
15for the linker to find the library.
16
17Then make sure you also have `GI_TYPELIB_PATH` pointing to the resulting
18`$prefix/lib/girepository-*` directory.
19
20Make sure you have pygobject installed.  Then check that the following
21import works in your Python interpreter:
22
23```python
24from gi.repository import HarfBuzz
25```
26
27If it does, you are ready to call HarfBuzz from Python!  Congratulations.
28See [`src/sample.py`](src/sample.py).
29
30The Python API will change.  Let us know on the mailing list if you are
31using it, and send lots of feedback.
32