From 58b7a156c5cddc11fe5a5e3f982d65d433a9177a Mon Sep 17 00:00:00 2001 From: Emmanuel Gil Peyrot Date: Tue, 16 Feb 2016 01:57:51 +0000 Subject: [PATCH] configure: Make WebP support togglable, and improve its error message. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Bryce Harrington --- configure.ac | 12 ++++++++++-- shared/image-loader.c | 11 +++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 91c8c13b..276584f9 100644 --- a/configure.ac +++ b/configure.ac @@ -293,9 +293,17 @@ fi PKG_CHECK_MODULES(PIXMAN, [pixman-1]) 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"], - [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],, enable_vaapi_recorder=auto) diff --git a/shared/image-loader.c b/shared/image-loader.c index ec75bd4f..050f0677 100644 --- a/shared/image-loader.c +++ b/shared/image-loader.c @@ -352,6 +352,15 @@ load_webp(FILE *fp) 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 @@ -364,9 +373,7 @@ struct image_loader { static const struct image_loader loaders[] = { { { 0x89, 'P', 'N', 'G' }, 4, load_png }, { { 0xff, 0xd8 }, 2, load_jpeg }, -#ifdef HAVE_WEBP { { 'R', 'I', 'F', 'F' }, 4, load_webp } -#endif }; pixman_image_t *