It doesn’t make sense to fail the entire build when jpeglib isn’t present, so this commit makes it optional just like libwebp in the previous one, disabled with --without-jpeg and forced with --with-jpeg.
Signed-off-by: Emmanuel Gil Peyrot <[email protected]> --- Changes since v1: - Added a --without-jpeg and a --with-jpeg options - Added an error message when trying to load a JPEG file with jpeglig disabled. I also chose to use auto by default instead of yes, as it makes the most sense when building anywhere, the other option of having the build fail with a message asking the user to pass --without-jpeg didn’t seem appealing. configure.ac | 23 ++++++++++++++--------- shared/image-loader.c | 30 +++++++++++++++++++++++------- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/configure.ac b/configure.ac index 878b30a..e8689bd 100644 --- a/configure.ac +++ b/configure.ac @@ -294,6 +294,19 @@ fi PKG_CHECK_MODULES(PIXMAN, [pixman-1]) PKG_CHECK_MODULES(PNG, [libpng]) +AC_ARG_WITH([jpeg], + AS_HELP_STRING([--without-jpeg], + [Use jpeglib for JPEG decoding support [default=auto]])) +AS_IF([test "x$with_jpeg" != "xno"], + [AC_CHECK_LIB([jpeg], [jpeg_CreateDecompress], [have_jpeglib=yes], [have_jpeglib=no])], + [have_jpeglib=no]) +AS_IF([test "x$have_jpeglib" = "xyes"], + [JPEG_LIBS="-ljpeg" + AC_SUBST([JPEG_LIBS]) + AC_DEFINE([HAVE_JPEG], [1], [Have jpeglib])], + [AS_IF([test "x$with_jpeg" = "xyes"], + [AC_MSG_ERROR([JPEG support explicitly requested, but jpeglib couldn't be found])])]) + AC_ARG_WITH([webp], AS_HELP_STRING([--without-webp], [Use libwebp for WebP decoding support [default=auto]])) @@ -318,15 +331,6 @@ if test x$enable_vaapi_recorder != xno; then fi AM_CONDITIONAL(ENABLE_VAAPI_RECORDER, test "x$have_libva" = xyes) - -AC_CHECK_LIB([jpeg], [jpeg_CreateDecompress], have_jpeglib=yes) -if test x$have_jpeglib = xyes; then - JPEG_LIBS="-ljpeg" -else - AC_ERROR([libjpeg not found]) -fi -AC_SUBST(JPEG_LIBS) - PKG_CHECK_MODULES(CAIRO, [cairo]) PKG_CHECK_MODULES(TEST_CLIENT, [wayland-client >= 1.9.91]) @@ -684,6 +688,7 @@ AC_MSG_RESULT([ Colord Support ${have_colord} LCMS2 Support ${have_lcms} + libjpeg Support ${have_jpeglib} libwebp Support ${have_webp} libunwind Support ${have_libunwind} VA H.264 encoding Support ${have_libva} diff --git a/shared/image-loader.c b/shared/image-loader.c index 050f067..f477dfd 100644 --- a/shared/image-loader.c +++ b/shared/image-loader.c @@ -30,13 +30,16 @@ #include <stdlib.h> #include <stdio.h> #include <string.h> -#include <jpeglib.h> #include <png.h> #include <pixman.h> #include "shared/helpers.h" #include "image-loader.h" +#ifdef HAVE_JPEG +#include <jpeglib.h> +#endif + #ifdef HAVE_WEBP #include <webp/decode.h> #endif @@ -48,6 +51,14 @@ stride_for_width(int width) } static void +pixman_image_destroy_func(pixman_image_t *image, void *data) +{ + free(data); +} + +#ifdef HAVE_JPEG + +static void swizzle_row(JSAMPLE *row, JDIMENSION width) { JSAMPLE *s; @@ -68,12 +79,6 @@ error_exit(j_common_ptr cinfo) longjmp(cinfo->client_data, 1); } -static void -pixman_image_destroy_func(pixman_image_t *image, void *data) -{ - free(data); -} - static pixman_image_t * load_jpeg(FILE *fp) { @@ -132,6 +137,17 @@ load_jpeg(FILE *fp) return pixman_image; } +#else + +static pixman_image_t * +load_jpeg(FILE *fp) +{ + fprintf(stderr, "JPEG support disabled at compile-time\n"); + return NULL; +} + +#endif + static inline int multiply_alpha(int alpha, int color) { -- 2.7.1 _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
