[PATCH weston v2 2/2] configure: Make jpeglib an optional dependency.
Bryce Harrington
bryce at osg.samsung.com
Wed Feb 17 06:29:34 UTC 2016
On Tue, Feb 16, 2016 at 01:57:52AM +0000, Emmanuel Gil Peyrot wrote:
> 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 <linkmauve at linkmauve.fr>
Is there any functional loss when jpg support is missing?
> ---
> 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
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel
More information about the wayland-devel
mailing list