- if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then
- AC_DEFINE(wxUSE_GRAPHICS_CONTEXT)
- elif test "$wxUSE_GTK" != 1; then
- dnl for other builds we'll just wing it for now...
- AC_DEFINE(wxUSE_GRAPHICS_CONTEXT)
- else
- dnl ...but let's check for cairo availability for wxGTK builds
- PKG_CHECK_MODULES(CAIRO, cairo,
- [AC_DEFINE(wxUSE_GRAPHICS_CONTEXT)],
- [AC_MSG_WARN([Cairo library not found, unable to set wxUSE_GRAPHICS_CONTEXT])]
- )
- fi
+ wx_has_graphics=0
+ if test "$wxUSE_MSW" = 1; then
+ AC_CACHE_CHECK([if GDI+ is available], wx_cv_lib_gdiplus,
+ [
+ dnl we need just the header, not the library, as we load the
+ dnl GDI+ DLL dynamically anyhow during run-time
+ AC_LANG_PUSH(C++)
+ AC_TRY_COMPILE(
+ [#include <windows.h>
+ #include <gdiplus.h>],
+ [
+ using namespace Gdiplus;
+ ],
+ wx_cv_lib_gdiplus=yes,
+ wx_cv_lib_gdiplus=no
+ )
+ AC_LANG_POP()
+ ]
+ )
+ if test "$wx_cv_lib_gdiplus" = "yes"; then
+ wx_has_graphics=1
+ fi
+ elif test "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then
+ PKG_CHECK_MODULES(CAIRO, cairo,
+ [wx_has_graphics=1],
+ [AC_MSG_WARN([Cairo library not found])]
+ )
+ if test "$wx_has_graphics" = 1; then
+ dnl Check that Cairo library is new enough: wxGraphicsContext
+ dnl won't compile without cairo_push_group() and
+ dnl cairo_pop_group_to_source() which are new in 1.2.
+ save_LIBS="$LIBS"
+ LIBS="$LIBS $CAIRO_LIBS"
+ AC_CHECK_FUNCS([cairo_push_group])
+ LIBS="$save_LIBS"
+ if test "$ac_cv_func_cairo_push_group" = "no"; then
+ wx_has_graphics=0
+ AC_MSG_WARN([Cairo library is too old and misses cairo_push_group()])
+ else
+ AC_DEFINE(wxUSE_CAIRO)
+
+ dnl We don't need to do this for wxGTK as we already get Cairo
+ dnl flags as part of GTK+ ones.
+ if test "$wxUSE_GTK" != 1; then
+ CPPFLAGS="$CAIRO_CFLAGS $CPPFLAGS"
+ GUI_TK_LIBRARY="$GUI_TK_LIBRARY $CAIRO_LIBS"
+ fi
+ fi
+ fi
+ else
+ dnl assume it's ok, add more checks here if needed
+ wx_has_graphics=1
+ fi
+
+ if test "$wx_has_graphics" = 1; then
+ AC_DEFINE(wxUSE_GRAPHICS_CONTEXT)
+ else
+ AC_MSG_WARN([wxGraphicsContext won't be available])
+ fi