xref: /aosp_15_r20/external/harfbuzz_ng/BUILD.md (revision 2d1272b857b1f7575e6e246373e1cb218663db8a)
1On Linux, install the development packages for FreeType, Cairo, and GLib. For
2example, on Ubuntu / Debian, you would do:
3
4    $ sudo apt-get install meson pkg-config ragel gtk-doc-tools gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev
5
6whereas on Fedora, RHEL, CentOS, and other Red Hat based systems you would do:
7
8    $ sudo dnf install meson pkgconfig gtk-doc gcc gcc-c++ freetype-devel glib2-devel cairo-devel
9
10and on ArchLinux and Manjaro:
11
12    $ sudo pacman -Suy meson pkg-config ragel gcc freetype2 glib2 glib2-devel cairo
13
14On macOS:
15
16    brew install pkg-config ragel gtk-doc freetype glib cairo meson
17
18Then use meson to build the project and run the tests, like:
19
20    meson build && ninja -Cbuild && meson test -Cbuild
21
22On Windows, meson can build the project like above if a working MSVC's cl.exe
23(`vcvarsall.bat`) or gcc/clang is already on your path, and if you use
24something like `meson build --wrap-mode=default` it fetches and compiles most
25of the dependencies also.  It is recommended to install CMake either manually
26or via the Visual Studio installer when building with MSVC, using meson.
27
28Our CI configurations are also a good source of learning how to build HarfBuzz.
29
30There is also amalgamated source provided with HarfBuzz which reduces whole process
31of building HarfBuzz to `g++ src/harfbuzz.cc -fno-exceptions` but there is
32no guarantee provided with buildability and reliability of features you get.
33