Introduction: A very brief post
This is an extremely short post to note one way of building the superb HarfBuzz OpenType shaping library as a static library on Windows (i.e., a .lib) – using an elderly version of Visual Studio (2008)! The screenshot below shows the source files I included into my VS2008 project and the files I excluded from the build (the excluded files have a little red minus sign next to them). In short, I did not build HarfBuzz for use with ICU, Graphite or Uniscribe and excluded a few other source files that were not necessary for (my version of) a successful build. I’ve tested the .lib
and, so far, it works well for what I need – but, of course, be sure to run your on tests! You will also need the FreeType library as well, which I also built as a static library. HarfBuzz also compiles nicely using MinGW to give you a DLL, but I personally prefer to build a native Windows .lib if I can get one built (without too much pain…)
Here are the preprocessor definitions that I needed to set for the project
WIN32
_DEBUG
_LIB
_CRT_SECURE_NO_WARNINGS
HAVE_OT
HAVE_UCDN
A tip, of sorts, or at least something that worked for me. When using the HarfBuzz library UTF16 buffer functions in your own code, you may need to ensure that the
wchar_t
type is not treated as a built-in type. For example, using wide characters like thisconst wchar_t* text = L"هَمْزَة وَصْل آ";
and, say,hb_buffer_add_utf16( buffer, text, wcslen(text), 0, wcslen(text) );
. Within the project property pages, SetC/C++ -> Language -> Treat wchar_t as Built-in Type = No
Here’s the list of files displayed in Visual Studio