On Linux, install the development packages for FreeType, Cairo, and GLib. For example, on Ubuntu / Debian, you would do:
sudo apt-get install gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev
whereas on Fedora, RHEL, CentOS, and other Red Hat based systems you would do:
sudo yum install gcc gcc-c++ freetype-devel glib2-devel cairo-devel
on Windows, consider using vcpkg, provided by Microsoft, for building HarfBuzz and other open-source libraries but if you need to build harfbuzz from source, put ragel binary on your PATH and follow appveyor CI's cmake build steps.
on macOS, using MacPorts:
sudo port install freetype glib2 cairo
or using Homebrew:
brew install freetype glib cairo
If you are using a tarball, you can now proceed to running configure and make
as with any other standard package. That should leave you with a shared
library in src/
, and a few utility programs including hb-view
and hb-shape
under util/
.
If you are bootstrapping from git, you need a few more tools before you can
run autogen.sh
for the first time. Namely, pkg-config
and ragel
.
Again, on Ubuntu / Debian:
sudo apt-get install autoconf automake libtool pkg-config ragel gtk-doc-tools
and on Fedora, RHEL, CentOS:
sudo yum install autoconf automake libtool pkgconfig ragel gtk-doc
on the Mac, using MacPorts:
sudo port install autoconf automake libtool pkgconfig ragel gtk-doc
or using Homebrew:
brew install autoconf automake libtool pkgconfig ragel gtk-doc
To build the Python bindings, you also need:
brew install pygobject3