-#
-# Allow building some or all gdk-pixbuf loaders included
-#
-AC_MSG_CHECKING(pixbuf loaders to build)
-
-dnl due to an autoconf bug, commas in the first arg to
-dnl AC_HELP_STRING cause problems.
-dnl AC_HELP_STRING([--with-included-loaders=LOADER1 LOADER2 ...],
-dnl [build the specified loaders into gdk-pixbuf])
-AC_ARG_WITH(included_loaders,
-[ --with-included-loaders=LOADER1,LOADER2,...
- build the specified loaders into gdk-pixbuf])
-
-if $dynworks; then
- :
-else
- ## if the option was specified, leave it; otherwise disable included loaders
- if test x$with_included_loaders = xno; then
- with_included_loaders=yes
- fi
-fi
-
-# Use the traditional png loader instead of the GDI+ one on Windows,
-# because some important apps like GIMP need to read and write
-# arbitrary tEXt chunks which doesn't seem to be possible through GDI+
-
-all_loaders="ani,icns,pcx,ras,tga,png,pnm,wbmp,xbm,xpm,qtif"
-if test x$with_libjasper != xno; then
- all_loaders="$all_loaders,jasper"
-fi
-if test x$os_win32 = xyes && test x$enable_gdiplus != xno; then
- # Skip PNG, see comment above
- gdip_formats="bmp emf gif ico jpeg tiff wmf"
- for f in $gdip_formats; do
- all_loaders="$all_loaders,gdip-$f"
- done
-else
- all_loaders="$all_loaders,bmp,gif,ico,jpeg,tiff"
-fi
-included_loaders=""
-# If no loaders specified, include all
-if test "x$with_included_loaders" = xyes ; then
- included_loaders="$all_loaders"
-else
- included_loaders="$with_included_loaders"
-fi
-
-AC_MSG_RESULT($included_loaders)
-
-INCLUDED_LOADER_OBJ=
-INCLUDED_LOADER_DEFINE=
-
-IFS="${IFS= }"; gtk_save_ifs="$IFS"; IFS=","
-for loader in $included_loaders; do
- if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
- :
- else
- AC_MSG_ERROR([the specified loader $loader does not exist])
- fi
-
- loader_underscores=`echo $loader | sed -e 's/-/_/g'`
- INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libstatic-pixbufloader-$loader.la"
-
- # Don't bother defining separate -DINCLUDE_gdip_foo for each gdip-foo loader
- case $loader in
- gdip-*) ;;
- *) INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader_underscores";;
- esac
- eval INCLUDE_$loader_underscores=yes
-done
-
-# Just define one -DINCLUDE_gdiplus for all the gdip-foo loaders
-# (except gdip-png, which isn't built at all)
-if test x"$INCLUDE_gdip_ico" = xyes; then
- INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_gdiplus"
-fi
-
-IFS="$gtk_save_ifs"
-AC_SUBST(INCLUDED_LOADER_OBJ)
-AC_SUBST(INCLUDED_LOADER_DEFINE)
-
-AM_CONDITIONAL(INCLUDE_PNG, [test x"$INCLUDE_png" = xyes])
-AM_CONDITIONAL(INCLUDE_BMP, [test x"$INCLUDE_bmp" = xyes])
-AM_CONDITIONAL(INCLUDE_WBMP, [test x"$INCLUDE_wbmp" = xyes])
-AM_CONDITIONAL(INCLUDE_GIF, [test x"$INCLUDE_gif" = xyes])
-AM_CONDITIONAL(INCLUDE_ICO, [test x"$INCLUDE_ico" = xyes])
-AM_CONDITIONAL(INCLUDE_ANI, [test x"$INCLUDE_ani" = xyes])
-AM_CONDITIONAL(INCLUDE_JPEG, [test x"$INCLUDE_jpeg" = xyes])
-AM_CONDITIONAL(INCLUDE_PNM, [test x"$INCLUDE_pnm" = xyes])
-AM_CONDITIONAL(INCLUDE_RAS, [test x"$INCLUDE_ras" = xyes])
-AM_CONDITIONAL(INCLUDE_TIFF, [test x"$INCLUDE_tiff" = xyes])
-AM_CONDITIONAL(INCLUDE_XPM, [test x"$INCLUDE_xpm" = xyes])
-AM_CONDITIONAL(INCLUDE_XBM, [test x"$INCLUDE_xbm" = xyes])
-AM_CONDITIONAL(INCLUDE_TGA, [test x"$INCLUDE_tga" = xyes])
-AM_CONDITIONAL(INCLUDE_PCX, [test x"$INCLUDE_pcx" = xyes])
-AM_CONDITIONAL(INCLUDE_ICNS, [test x"$INCLUDE_icns" = xyes])
-AM_CONDITIONAL(INCLUDE_JASPER, [test x"$INCLUDE_jasper" = xyes])
-AM_CONDITIONAL(INCLUDE_QTIF, [test x"$INCLUDE_qtif" = xyes])
-# As all GDI+ loaders are either built-in or not, arbitrarily just
-# check one of the variables here
-AM_CONDITIONAL(INCLUDE_GDIPLUS, [test x"$INCLUDE_gdip_ico" = xyes])
-
-if test x$gio_can_sniff = x; then
- AC_MSG_CHECKING([if gio can sniff png])
- gtk_save_LIBS="$LIBS"
- gtk_save_CFLAGS="$CFLAGS"
- LIBS="`$PKG_CONFIG --libs gio-2.0`"
- CFLAGS="`$PKG_CONFIG --cflags gio-2.0`"
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #include <gio/gio.h>
- static const gsize data_size = 159;
- static const guint8 data[] =
- {
- 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
- 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
- 0x08, 0x02, 0x00, 0x00, 0x00, 0x90, 0x77, 0x53, 0xde, 0x00, 0x00, 0x00,
- 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00,
- 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00,
- 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74,
- 0x49, 0x4d, 0x45, 0x07, 0xd8, 0x07, 0x0f, 0x10, 0x08, 0x15, 0x61, 0xd8,
- 0x35, 0x37, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x43, 0x6f,
- 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x47, 0x49, 0x4d, 0x50, 0x57,
- 0x81, 0x0e, 0x17, 0x00, 0x00, 0x00, 0x0c, 0x49, 0x44, 0x41, 0x54, 0x08,
- 0xd7, 0x63, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x05, 0xfe, 0x02, 0xfe, 0xdc,
- 0xcc, 0x59, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae,
- 0x42, 0x60, 0x82
- };
- int
- main (int argc, char **argv)
- {
- char *content_type;
- char *image_png;
- g_type_init ();
- content_type = g_content_type_guess (NULL, data, data_size, NULL);
- image_png = g_content_type_from_mime_type ("image/png");
- return !!g_strcmp0 (content_type, image_png);
- }]])],
- [gio_can_sniff=yes
- AC_DEFINE(GDK_PIXBUF_USE_GIO_MIME, 1, [Define if gio can sniff image data])],
- [gio_can_sniff=no])
- AC_MSG_RESULT($gio_can_sniff)
- LIBS="$gtk_save_LIBS"
- CFLAGS="$gtk_save_CFLAGS"
-fi
-