(DO NOT MERGE) OpenRaster (.ora) decoder support (#2342)
* Started work on OpenRaster (.ora) decoder
* Fix Zip libary name, fix tab indenting in config,
change format type of ORA files from implict to explict.
* Rename var used for libzip to avoid conflict with Window Zip,
created header for libzip support, decoding from ORA now works
as expected
* Fix tabbing of libzip in configure, rename variables to snake_case,
update metainfo of returned image to match that of the ORA file
instead of the temporary PNG file.
* Made ora.c ANSI C compatible, Add entry for ORA with no decoder
instead of adding no entires when the required libaries are not
installed.
diff --git a/configure.ac b/configure.ac
index 88c31a9..f3023b6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -615,7 +615,7 @@
AM_CONDITIONAL(WITH_MODULES, test "$build_modules" != 'no')
# Enable build using delegate libraries built in subdirectories rather than installed
-# delegate libraries (bzlib fftw fpx gslib jp2 jbig jpeg lcms lzma png tiff ttf wmf xml zlib)
+# delegate libraries (bzlib fftw fpx gslib jp2 jbig jpeg lcms lzma png tiff ttf wmf xml zlib zip)
AC_ARG_ENABLE([delegate-build],
[AC_HELP_STRING([--enable-delegate-build],
[look for delegate libraries in build directory])],
@@ -1174,7 +1174,7 @@
# Most delegates have includes in the same directory as the library, but not all...
#
# Includes
- for dir in bzlib fftw fpx gslib/src jp2 jbig/libjbig jpeg lcms/include lzma magick openjp2/include png tiff/libtiff ttf/include wand webp/src wmf/include xml/include zlib; do
+ for dir in zip bzlib fftw fpx gslib/src jp2 jbig/libjbig jpeg lcms/include lzma magick openjp2/include png tiff/libtiff ttf/include wand webp/src wmf/include xml/include zlib; do
if test -d "$builddir/$dir"; then
CPPFLAGS="$CPPFLAGS -I$builddir/$dir"
else
@@ -1185,7 +1185,7 @@
done
# Libraries
- for dir in bzlib fftw fpx gslib/src jbig/libjbig jpeg lcms/src lzma magick openjp2 png tiff/libtiff ttf/objs wand webp wmf/src xml zlib; do
+ for dir in zip bzlib fftw fpx gslib/src jbig/libjbig jpeg lcms/src lzma magick openjp2 png tiff/libtiff ttf/objs wand webp wmf/src xml zlib; do
if test -d "$builddir/$dir/.libs"; then
LDFLAGS="$LDFLAGS -L$builddir/$dir/.libs"
else
@@ -1578,6 +1578,42 @@
dnl ===========================================================================
#
+# Check for libzip
+#
+AC_ARG_WITH([libzip],
+ [AC_HELP_STRING([--without-libzip],
+ [disable libzip support])],
+ [with_libzip=$withval],
+ [with_libzip='yes'])
+
+if test "$with_libzip" != 'yes'; then
+ DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-libzip=$with_libzip "
+fi
+
+have_libzip='no'
+LIBZIP_CFLAGS=""
+LIBZIP_LIBS=""
+LIBZIP_PKG=""
+if test "x$with_libzip" = "xyes"; then
+ AC_MSG_RESULT([-------------------------------------------------------------])
+ PKG_CHECK_MODULES(LIBZIP,[libzip >= 1.0.0], have_libzip=yes, have_libzip=no)
+ AC_MSG_RESULT([])
+fi
+
+if test "$have_libzip" = 'yes'; then
+ AC_DEFINE(LIBZIP_DELEGATE,1,Define if you have libzip library)
+ CFLAGS="$LIBZIP_CFLAGS $CFLAGS"
+ LIBS="$LIBZIP_LIBS $LIBS"
+fi
+
+AM_CONDITIONAL(LIBZIP_DELEGATE, test "$have_libzip" = 'yes')
+AC_SUBST(LIBZIP_CFLAGS)
+AC_SUBST(LIBZIP_LIBS)
+
+
+dnl ===========================================================================
+
+#
# Check for ZSTD
#
AC_ARG_WITH([zstd],
@@ -3817,6 +3853,9 @@
if test "$have_xml" = 'yes' ; then
MAGICK_DELEGATES="$MAGICK_DELEGATES xml"
fi
+if test "$have_libzip" = 'yes' ; then
+ MAGICK_DELEGATES="$MAGICK_DELEGATES libzip"
+fi
if test "$have_zlib" = 'yes' ; then
MAGICK_DELEGATES="$MAGICK_DELEGATES zlib"
fi
@@ -3872,9 +3911,9 @@
#
if test "$build_modules" != 'no'; then
- MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+ MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $LIBZIP_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
else
- MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+ MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $LIBZIP_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
fi
MAGICK_EXTRA_DEP_LIBS="$GOMP_LIBS"
AC_SUBST(MAGICK_DEP_LIBS)
@@ -4033,7 +4072,7 @@
HEIC --with-heic=$with_heic $have_heic
JBIG --with-jbig=$with_jbig $have_jbig
JPEG v1 --with-jpeg=$with_jpeg $have_jpeg
- JPEG XL --with-jxl=$with_jxl $have_jxl
+ JPEG XL --with-jxl=$with_jxl $have_jxl
LCMS --with-lcms=$with_lcms $have_lcms
LQR --with-lqr=$with_lqr $have_lqr
LTDL --with-ltdl=$with_ltdl $have_ltdl
@@ -4053,6 +4092,7 @@
X11 --with-x=$with_x $have_x
XML --with-xml=$with_xml $have_xml
ZLIB --with-zlib=$with_zlib $have_zlib
+ LIBZIP --with-libzip=$with_libzip $have_libzip
ZSTD --with-zstd=$with_zstd $have_zstd
Delegate program configuration: