dc31e8b6d6d42259f05f2a208c7c78a8d1e7b65c
[platform/upstream/harfbuzz.git] / win32 / README.txt
1 Instructions for building HarfBuzz on Visual Studio\r
2 ===================================================\r
3 Building the HarfBuzz DLL on Windows is now also supported using Visual Studio\r
4 versions 2008 through 2015, in both 32-bit and 64-bit (x64) flavors, via NMake\r
5 Makefiles.\r
6 \r
7 The following are instructions for performing such a build, as there is a\r
8 number of build configurations supported for the build.  Note that for all\r
9 build configurations, the OpenType and Simple TrueType layout (fallback)\r
10 backends are enabled, and this is the base configuration that is built if no\r
11 options (see below) are specified.  A 'clean' target is provided-it is recommended\r
12 that one cleans the build and redo the build if any configuration option changed.\r
13 An 'install' target is also provided to copy the built items in their appropriate\r
14 locations under $(PREFIX), which is described below.\r
15 \r
16 Invoke the build by issuing the command:\r
17 nmake /f Makefile.vc CFG=[release|debug] [PREFIX=...] <option1=1 option2=1 ...>\r
18 where:\r
19 \r
20 CFG: Required.  Choose from a release or debug build.  Note that \r
21      all builds generate a .pdb file for each .dll and .exe built--this refers\r
22      to the C/C++ runtime that the build uses.\r
23 \r
24 PREFIX: Optional.  Base directory of where the third-party headers, libraries\r
25         and needed tools can be found, i.e. headers in $(PREFIX)\include,\r
26         libraries in $(PREFIX)\lib and tools in $(PREFIX)\bin.  If not\r
27         specified, $(PREFIX) is set as $(srcroot)\..\vs$(X)\$(platform), where\r
28         $(platform) is win32 for 32-bit builds or x64 for 64-bit builds, and\r
29         $(X) is the short version of the Visual Studio used, as follows:\r
30         2008: 9\r
31         2010: 10\r
32         2012: 11\r
33         2013: 12\r
34         2015: 14\r
35 \r
36 Explanation of options, set by <option>=1:\r
37 ------------------------------------------\r
38 GLIB: Enable GLib support in HarfBuzz, which also uses the GLib unicode\r
39       callback if the bundled UCDN unicode callback is disabled.  This requires the\r
40       GLib libraries, and is required for building all tool and test programs.\r
41 \r
42 GOBJECT: Enable building the HarfBuzz-GObject DLL, and thus implies GLib\r
43          support.  This requires the GObject libraries and glib-mkenums script,\r
44          along with PERL to generate the enum sources and headers, which is\r
45          required for the build.\r
46 \r
47 INTROSPECTION: Enable build of introspection files, for making HarfBuzz\r
48                bindings for other programming languages available, such as\r
49                Python, available.  This requires the GObject-Introspection\r
50                libraries and tools, along with the Python interpretor that was\r
51                used during the build of GObject-Introspection.  Please see\r
52                $(srcroot)\README.python for more related details.  This implies\r
53                the build of the HarfBuzz-GObject DLL, along with GLib support.\r
54 \r
55 FREETYPE: Enable the FreeType font callbacks.  Requires the FreeType2 library.\r
56 \r
57 CAIRO: Enable Cairo support.  Requires the Cairo library.\r
58 \r
59 CAIRO_FT: Enable the build of the hb-view tool, which makes use of Cairo, and\r
60           thus implies FreeType font callback support and Cairo support.\r
61           Requires Cairo libraries built with FreeType support.  Note that the\r
62           hb-view tool requires GLib support as well.\r
63 \r
64 GRAPHITE2: Enable the Graphite2 shaper, requires the SIL Graphite2 library.\r
65 \r
66 ICU: Enables the build of ICU Unicode functions. Requires the ICU libraries.\r
67 \r
68 UNISCRIBE: Enable Uniscribe platform shaper support.\r
69 \r
70 DIRECTWRITE: Enable DirectWrite platform shaper support,\r
71              requires a rather recent Windows SDK, and at least Windows Vista/\r
72              Server 2008 with SP2 and platform update.\r
73 \r
74 PYTHON: Full path to the Python interpretor to be used, if it is not in %PATH%.\r
75 \r
76 PERL: Full path to the PERL interpretor to be used, if it is not in %PATH%.\r
77 \r
78 LIBTOOL_DLL_NAME: Enable libtool-style DLL names.\r