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, as well as the Uniscribe platform shaper, 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 instead of the bundled UCDN unicode callback.  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 HarfBuzz-ICU, which is now the recommended layout engine
     for ICU (International Components for Unicode), which deprecated ICU LE.
     Requires the ICU libraries.

DIRECTWRITE: Enable (experimental) 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.