blob: f64f8687d3c090e3d6df5d2d540b2050ac2ac7f7 [file] [log] [blame] [view]
Behdad Esfahbode21921a2016-05-06 15:24:39 +01001On Linux, install the development packages for FreeType,
Ebrahim Byagowi2fb95a02015-10-19 22:02:12 +03302Cairo, and GLib. For example, on Ubuntu / Debian, you would do:
Bruce Mitchener4f6754a2018-01-03 00:15:18 +07003
Ebrahim Byagowi0fc52d32020-07-06 16:47:50 +04304 sudo apt-get install meson pkg-config ragel gtk-doc-tools gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev
Ebrahim Byagowi2fb95a02015-10-19 22:02:12 +03305
6whereas on Fedora, RHEL, CentOS, and other Red Hat based systems you would do:
Bruce Mitchener4f6754a2018-01-03 00:15:18 +07007
Ebrahim Byagowi0fc52d32020-07-06 16:47:50 +04308 sudo dnf install meson pkgconfig gtk-doc gcc gcc-c++ freetype-devel glib2-devel cairo-dev
Ebrahim Byagowi2fb95a02015-10-19 22:02:12 +03309
Ebrahim Byagowi0fc52d32020-07-06 16:47:50 +043010and on ArchLinux and Manjaro:
ebraminiodfeccd02017-10-12 12:11:47 +033011
Ebrahim Byagowi0fc52d32020-07-06 16:47:50 +043012 sudo pacman -Suy meson pkg-config ragel gcc freetype2 glib2 cairo
Bruce Mitchener4f6754a2018-01-03 00:15:18 +070013
Ebrahim Byagowi0fc52d32020-07-06 16:47:50 +043014then use meson to build the project like `meson build && meson test -Cbuild`.
Ebrahim Byagowi2fb95a02015-10-19 22:02:12 +033015
Ebrahim Byagowi28554cb2020-07-06 17:04:54 +043016On macOS, `brew install pkg-config ragel gtk-doc freetype glib cairo meson` then use
17meson like above.
Bruce Mitchener4f6754a2018-01-03 00:15:18 +070018
Ebrahim Byagowie5dd7d32020-07-06 21:40:19 +043019On Windows, meson can build the project like above if a working MSVC's cl.exe (`vcvarsall.bat`)
20or gcc/clang is already on your path, and if you use something like `meson build --wrap-mode=default`
21it fetches and compiles most of the dependencies also.
Ebrahim Byagowi28554cb2020-07-06 17:04:54 +043022
Ebrahim Byagowib0a48602020-08-02 11:15:15 +043023Our CI configurations is also a good source of learning how to build HarfBuzz.
24
Ebrahim Byagowie5dd7d32020-07-06 21:40:19 +043025There is also amalgam source provided with HarfBuzz which reduces whole process of building
26HarfBuzz like `g++ src/harfbuzz.cc -fno-exceptions` but there is not guarantee provided
27with buildability and reliability of features you get.