| 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. | |
| Invoke the build by issuing the command: | |
| nmake /f Makefile.vc CFG=[release|debug] [PREFIX=...] <option1=1 option2=1 ...> | |
| 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 | |
| Explanation of options, set by <option>=1: | |
| ------------------------------------------ | |
| GLIB: Enable GLib support in HarfBuzz, which also uses the GLib unicode | |
| callback if the bundled UCDN unicode callback is disabled. This requires the | |
| GLib libraries, and is required for building all tool and test programs. | |
| GOBJECT: Enable building the HarfBuzz-GObject DLL, and thus implies GLib | |
| support. This requires the GObject libraries and glib-mkenums script, | |
| along with PERL to generate the enum sources and headers, which is | |
| required for the build. | |
| INTROSPECTION: Enable build of introspection files, for making HarfBuzz | |
| bindings for other programming languages available, such as | |
| Python, available. This requires the GObject-Introspection | |
| libraries and tools, along with the Python interpretor that was | |
| used during the build of GObject-Introspection. Please see | |
| $(srcroot)\README.python for more related details. This implies | |
| the build of the HarfBuzz-GObject DLL, along with GLib support. | |
| FREETYPE: Enable the FreeType font callbacks. Requires the FreeType2 library. | |
| CAIRO: Enable Cairo support. Requires the Cairo library. | |
| CAIRO_FT: Enable the build of the hb-view tool, which makes use of Cairo, and | |
| thus implies FreeType font callback support and Cairo support. | |
| Requires Cairo libraries built with FreeType support. Note that the | |
| hb-view tool requires GLib support as well. | |
| GRAPHITE2: Enable the Graphite2 shaper, requires the SIL Graphite2 library. | |
| ICU: Enables the build of ICU Unicode functions. Requires the ICU libraries. | |
| UNISCRIBE: Enable Uniscribe platform shaper support. | |
| DIRECTWRITE: Enable DirectWrite platform shaper support, | |
| requires a rather recent Windows SDK, and at least Windows Vista/ | |
| Server 2008 with SP2 and platform update. | |
| PYTHON: Full path to the Python interpretor to be used, if it is not in %PATH%. | |
| PERL: Full path to the PERL interpretor to be used, if it is not in %PATH%. | |
| LIBTOOL_DLL_NAME: Enable libtool-style DLL names. |