[HarfBuzz] build breakage with msvc

Jonathan Kew jonathan at jfkew.plus.com
Thu Apr 29 07:03:25 PDT 2010


The use of __PRETTY_FUNCTION__ is non-portable, and breaks the build on Windows with MSVC.

For now, I'm working around this with

---------------------------------------
diff --git a/gfx/harfbuzz/src/hb-private.h b/gfx/harfbuzz/src/hb-private.h
--- a/gfx/harfbuzz/src/hb-private.h
+++ b/gfx/harfbuzz/src/hb-private.h
@@ -132,16 +132,17 @@
 
 #if (defined(__WIN32__) && !defined(__WINE__)) || defined(_MSC_VER)
 #define snprintf _snprintf
 #endif
 
 #ifdef _MSC_VER
 #undef inline
 #define inline __inline
+#define __PRETTY_FUNCTION__ __FUNCSIG__
 #endif
 
 #ifdef __STRICT_ANSI__
 #undef inline
 #define inline __inline__
 #endif
 
 
----------------------------------------

but this could fail with other non-gcc compilers, too. It would probably be better to use a private HB_FUNC macro, and #define this to __PRETTY_FUNCTION__ or __FUNCSIG__ for gcc and msvc respectively. For unknown compilers, default to __func__.





More information about the HarfBuzz mailing list