configure: Make WebP support togglable, and improve its error message.

The current way was enabling WebP support whenever libwebp was found,
giving no way to the user to disable it if they had the library
installed but didn’t want to link against it.  This adds a
--without-webp configure option to never link against it, and a
--with-webp one to fail the build if it isn’t found, the default being
to use it if it is present.

Additionally, we now tell the user when WebP support has been disabled
and they try to load a WebP file.

Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
dev
Emmanuel Gil Peyrot 9 years ago committed by Bryce Harrington
parent e1719c7891
commit 58b7a156c5
  1. 12
      configure.ac
  2. 11
      shared/image-loader.c

@ -293,9 +293,17 @@ fi
PKG_CHECK_MODULES(PIXMAN, [pixman-1]) PKG_CHECK_MODULES(PIXMAN, [pixman-1])
PKG_CHECK_MODULES(PNG, [libpng]) PKG_CHECK_MODULES(PNG, [libpng])
PKG_CHECK_MODULES(WEBP, [libwebp], [have_webp=yes], [have_webp=no])
AC_ARG_WITH([webp],
AS_HELP_STRING([--without-webp],
[Use libwebp for WebP decoding support [default=auto]]))
AS_IF([test "x$with_webp" != "xno"],
[PKG_CHECK_MODULES(WEBP, [libwebp], [have_webp=yes], [have_webp=no])],
[have_webp=no])
AS_IF([test "x$have_webp" = "xyes"], AS_IF([test "x$have_webp" = "xyes"],
[AC_DEFINE([HAVE_WEBP], [1], [Have webp])]) [AC_DEFINE([HAVE_WEBP], [1], [Have webp])],
[AS_IF([test "x$with_webp" = "xyes"],
[AC_MSG_ERROR([WebP support explicitly requested, but libwebp couldn't be found])])])
AC_ARG_ENABLE(vaapi-recorder, [ --enable-vaapi-recorder],, AC_ARG_ENABLE(vaapi-recorder, [ --enable-vaapi-recorder],,
enable_vaapi_recorder=auto) enable_vaapi_recorder=auto)

@ -352,6 +352,15 @@ load_webp(FILE *fp)
config.output.u.RGBA.stride); config.output.u.RGBA.stride);
} }
#else
static pixman_image_t *
load_webp(FILE *fp)
{
fprintf(stderr, "WebP support disabled at compile-time\n");
return NULL;
}
#endif #endif
@ -364,9 +373,7 @@ struct image_loader {
static const struct image_loader loaders[] = { static const struct image_loader loaders[] = {
{ { 0x89, 'P', 'N', 'G' }, 4, load_png }, { { 0x89, 'P', 'N', 'G' }, 4, load_png },
{ { 0xff, 0xd8 }, 2, load_jpeg }, { { 0xff, 0xd8 }, 2, load_jpeg },
#ifdef HAVE_WEBP
{ { 'R', 'I', 'F', 'F' }, 4, load_webp } { { 'R', 'I', 'F', 'F' }, 4, load_webp }
#endif
}; };
pixman_image_t * pixman_image_t *

Loading…
Cancel
Save