Instructions for building HarfBuzz on Visual Studio =================================================== Building the HarfBuzz DLL on Windows is now also supported using Visual Studio versions 2008 through 2015, in both 32-bit and 64-bit (x64) flavors, via NMake Makefiles. The following are instructions for performing such a build, as there is a number of build configurations supported for the build. Note that for all build configurations, the OpenType and Simple TrueType layout (fallback) backends are enabled, and this is the base configuration that is built if no options (see below) are specified. A 'clean' target is provided-it is recommended that one cleans the build and redo the build if any configuration option changed. An 'install' target is also provided to copy the built items in their appropriate locations under $(PREFIX), which is described below. A 'reallyclean' target is provided that not only does what is done for the 'clean' target, but also removes the sources/headers that are generated from the Ragel sources. Therefore, if one is not building from a release tarball, or is rebuilding after using the 'reallyclean' target or when the Ragel (*.rl) sources are updated, the Ragel state machine compiler (ragel.exe) is needed, and needs to be passed in via RAGEL= if ragel.exe is not already in the PATH. We now support building from a GIT checkout via NMake for convenience. In addition to the requirements as outlined in the later part of this file, you will need to run the setup.py (Python 2.7.x or later) script to generate the headers (src\hb-version.h and win32\config.h.win32) that are normally shipped in a release tarball before running NMake, and you will need to pass RAGEL= if the Ragel state machine compiler (ragel.exe) is not in your PATH when invoking NMake. Note that the 'reallyclean' target does not remove these 2 generated headers, so re-run the setup.py script if necessary. Invoke the build by issuing the command: nmake /f Makefile.vc CFG=[release|debug] [PREFIX=...] where: CFG: Required. Choose from a release or debug build. Note that all builds generate a .pdb file for each .dll and .exe built--this refers to the C/C++ runtime that the build uses. PREFIX: Optional. Base directory of where the third-party headers, libraries and needed tools can be found, i.e. headers in $(PREFIX)\include, libraries in $(PREFIX)\lib and tools in $(PREFIX)\bin. If not specified, $(PREFIX) is set as $(srcroot)\..\vs$(X)\$(platform), where $(platform) is win32 for 32-bit builds or x64 for 64-bit builds, and $(X) is the short version of the Visual Studio used, as follows: 2008: 9 2010: 10 2012: 11 2013: 12 2015: 14 2017: 15 Explanation of options, set by