build error at cairo

ここに記載しているメモは、 http://wiki.documentfoundation.org/User:Foral/Build_Win にまとめています。

OSL_TRACE("\r\n:cairocanvas::TextLayout::draw(S,O,p,v,r): Size:(%d,%d), W:%d->%d, Pos (%d,%d), G(%d,%d,%d) %s%s%s%s || Name:%s - %s",
          aFont.GetWidth(),
          aFont.GetHeight(),
          aMetric.GetWidth(),
          nWidth,
          (int) rOutpos.X(),
          (int) rOutpos.Y(),
          cairo_glyphs[0].index, cairo_glyphs[1].index, cairo_glyphs[2].index,
          maLogicalAdvancements.getLength() ? "ADV " : "",
          rSysFontData.bAntialias ? "AA " : "",
          rSysFontData.bFakeBold ? "FB " : "",
          rSysFontData.bFakeItalic ? "FI " : "",
#if (defined CAIRO_HAS_WIN32_SURFACE) && (OSL_DEBUG_LEVEL > 1)
          ::rtl::OUStringToOString( reinterpret_cast<const sal_Unicode*> (logfont.lfFaceName), RTL_TEXTENCODING_UTF8 ).getStr(),
#else
          ::rtl::OUStringToOString( aFont.GetName(), RTL_TEXTENCODING_UTF8 ).getStr(),
#endif
          ::rtl::OUStringToOString( maText.Text.copy( maText.StartPosition, maText.Length ),
RTL_TEXTENCODING_UTF8 ).getStr()
    );

/canvas/source/cairo/cairo_textlayout.cxx(600) : error C2121: ´#´ : invalid character : possibly the result of a macro expansion
/canvas/source/cairo/cairo_textlayout.cxx(600) : error C2059: syntax error : ´if´
/canvas/source/cairo/cairo_textlayout.cxx(600) : error C2121: ´#´ : invalid character : possibly the result of a macro expansion
/canvas/source/cairo/cairo_textlayout.cxx(600) : error C2121: ´#´ : invalid character : possibly the result of a macro expansion
/canvas/source/cairo/cairo_textlayout.cxx(600) : error C2653: ´endif´ : is not a class or namespace name

プリプロセッサーの仕様の違いなのか、vsだと上記のエラーが発生する。();の中の#ifを();の外で分岐させると問題なくコンパイルできる。どう対処するのが一番良いのだろう?

It is possible to solve but i do not know right way.