make gd/gd2 image formats optional #428
We still enable them by default, but we'll probably flip them off in the next major release series.master
parent
1daf261a83
commit
14b8020dda
|
@ -11,6 +11,7 @@ SET(CMAKE_MODULE_PATH "${GD_SOURCE_DIR}/cmake/modules")
|
|||
|
||||
include(gd)
|
||||
|
||||
OPTION(ENABLE_GD_FORMATS "Enable GD image formats" 0)
|
||||
OPTION(ENABLE_PNG "Enable PNG support" 0)
|
||||
OPTION(ENABLE_LIQ "Enable libimagequant support" 0)
|
||||
OPTION(ENABLE_JPEG "Enable JPEG support" 0)
|
||||
|
@ -144,6 +145,8 @@ else (USE_EXT_GD)
|
|||
FIND_PACKAGE(FontConfig)
|
||||
endif (ENABLE_FONTCONFIG)
|
||||
|
||||
SET(ENABLE_GD_FORMATS ${ENABLE_GD_FORMATS})
|
||||
|
||||
if (FREETYPE_FOUND)
|
||||
INCLUDE_DIRECTORIES(${FREETYPE_INCLUDE_DIRS})
|
||||
SET(HAVE_FT2BUILD_H 1)
|
||||
|
|
|
@ -20,8 +20,9 @@ fi
|
|||
|
||||
(
|
||||
echo "/* Generated from config.hin via autoheader for cmake; see bootstrap.sh. */"
|
||||
sed \
|
||||
sed -E \
|
||||
-e '1d' \
|
||||
-e '/\bENABLE_/{s:#undef:#define:;s:([^ ]*)$:\1 @\1@:}' \
|
||||
-e 's:#undef:#cmakedefine:' \
|
||||
src/config.hin
|
||||
) > src/config.h.cmake
|
||||
|
|
16
configure.ac
16
configure.ac
|
@ -121,6 +121,21 @@ AC_CHECK_FUNC(sin,,[AC_CHECK_LIB(m,sin)])
|
|||
AX_PTHREAD()
|
||||
AX_OPENMP()
|
||||
|
||||
dnl We should default this to off in future releases.
|
||||
AC_MSG_CHECKING([whether to support gd image formats])
|
||||
AC_ARG_ENABLE([gd-formats],
|
||||
[AS_HELP_STRING([--disable-gd-formats], [Disable support for the legacy/testing gd image formats])],
|
||||
[gd_enable_gd_formats=$enableval],
|
||||
[gd_enable_gd_formats=yes])
|
||||
AC_MSG_RESULT([$gd_enable_gd_formats])
|
||||
if test "$gd_enable_gd_formats" = yes; then
|
||||
gd_ac_value=1
|
||||
else
|
||||
gd_ac_value=0
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED([ENABLE_GD_FORMATS], [$gd_ac_value], [Whether to support gd image formats])
|
||||
AM_CONDITIONAL([ENABLE_GD_FORMATS], test "$gd_enable_gd_formats" = yes)
|
||||
|
||||
dnl Helper macro for working with external libraries.
|
||||
dnl GD_LIB_CHECK([SYM], [FEATURE], [name], [...test...])
|
||||
dnl $1 - upper case symbol
|
||||
|
@ -308,6 +323,7 @@ dnl report configuration
|
|||
AC_MSG_RESULT([
|
||||
** Configuration summary for $PACKAGE $VERSION:
|
||||
|
||||
Support for gd/gd2 images: $gd_enable_gd_formats
|
||||
Support for Zlib: $gd_with_LIBZ
|
||||
Support for PNG library: $gd_with_LIBPNG
|
||||
Support for JPEG library: $gd_with_LIBJPEG
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
/* Define is you are building for Win32 API */
|
||||
#cmakedefine BGDWIN32
|
||||
|
||||
/* Whether to support gd image formats */
|
||||
#define ENABLE_GD_FORMATS @ENABLE_GD_FORMATS@
|
||||
|
||||
/* Define to 1 if you have the <dirent.h> header file. */
|
||||
#cmakedefine HAVE_DIRENT_H
|
||||
|
||||
|
|
42
src/gd_gd.c
42
src/gd_gd.c
|
@ -57,6 +57,10 @@
|
|||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "gd.h"
|
||||
#include "gd_errors.h"
|
||||
|
||||
/* 2.3: gd is no longer mandatory */
|
||||
#if ENABLE_GD_FORMATS
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
@ -400,3 +404,41 @@ BGD_DECLARE(void *) gdImageGdPtr (gdImagePtr im, int *size)
|
|||
out->gd_free (out);
|
||||
return rv;
|
||||
}
|
||||
|
||||
#else /* no HAVE_LIBZ or !ENABLE_GD_FORMATS */
|
||||
|
||||
static void _noGdError (void)
|
||||
{
|
||||
gd_error("GD image support has been disabled\n");
|
||||
}
|
||||
|
||||
BGD_DECLARE(gdImagePtr) gdImageCreateFromGd (FILE * inFile)
|
||||
{
|
||||
_noGdError();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BGD_DECLARE(gdImagePtr) gdImageCreateFromGdPtr (int size, void *data)
|
||||
{
|
||||
_noGdError();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BGD_DECLARE(gdImagePtr) gdImageCreateFromGdCtx (gdIOCtxPtr in)
|
||||
{
|
||||
_noGdError();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BGD_DECLARE(void) gdImageGd (gdImagePtr im, FILE * outFile)
|
||||
{
|
||||
_noGdError();
|
||||
}
|
||||
|
||||
BGD_DECLARE(void *) gdImageGdPtr (gdImagePtr im, int *size)
|
||||
{
|
||||
_noGdError();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif /* ENABLE_GD_FORMATS */
|
||||
|
|
26
src/gd_gd2.c
26
src/gd_gd2.c
|
@ -85,7 +85,7 @@
|
|||
/* 2.03: gd2 is no longer mandatory */
|
||||
/* JCE - test after including gd.h so that HAVE_LIBZ can be set in
|
||||
* a config.h file included by gd.h */
|
||||
#ifdef HAVE_LIBZ
|
||||
#if defined(HAVE_LIBZ) && ENABLE_GD_FORMATS
|
||||
#include <zlib.h>
|
||||
|
||||
#define TRUE 1
|
||||
|
@ -1134,57 +1134,61 @@ BGD_DECLARE(void *) gdImageGd2Ptr (gdImagePtr im, int cs, int fmt, int *size)
|
|||
return rv;
|
||||
}
|
||||
|
||||
#else /* no HAVE_LIBZ */
|
||||
static void _noLibzError (void)
|
||||
#else /* no HAVE_LIBZ or !ENABLE_GD_FORMATS */
|
||||
static void _noGd2Error (void)
|
||||
{
|
||||
#if !ENABLE_GD_FORMATS
|
||||
gd_error("GD2 image support has been disabled\n");
|
||||
#else
|
||||
gd_error("GD2 support is not available - no libz\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
BGD_DECLARE(gdImagePtr) gdImageCreateFromGd2 (FILE * inFile)
|
||||
{
|
||||
_noLibzError();
|
||||
_noGd2Error();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BGD_DECLARE(gdImagePtr) gdImageCreateFromGd2Ctx (gdIOCtxPtr in)
|
||||
{
|
||||
_noLibzError();
|
||||
_noGd2Error();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BGD_DECLARE(gdImagePtr) gdImageCreateFromGd2Part (FILE * inFile, int srcx, int srcy, int w, int h)
|
||||
{
|
||||
_noLibzError();
|
||||
_noGd2Error();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BGD_DECLARE(gdImagePtr) gdImageCreateFromGd2Ptr (int size, void *data)
|
||||
{
|
||||
_noLibzError();
|
||||
_noGd2Error();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BGD_DECLARE(gdImagePtr) gdImageCreateFromGd2PartCtx (gdIOCtx * in, int srcx, int srcy, int w, int h)
|
||||
{
|
||||
_noLibzError();
|
||||
_noGd2Error();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BGD_DECLARE(gdImagePtr) gdImageCreateFromGd2PartPtr (int size, void *data, int srcx, int srcy, int w,
|
||||
int h)
|
||||
{
|
||||
_noLibzError();
|
||||
_noGd2Error();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BGD_DECLARE(void) gdImageGd2 (gdImagePtr im, FILE * outFile, int cs, int fmt)
|
||||
{
|
||||
_noLibzError();
|
||||
_noGd2Error();
|
||||
}
|
||||
|
||||
BGD_DECLARE(void *) gdImageGd2Ptr (gdImagePtr im, int cs, int fmt, int *size)
|
||||
{
|
||||
_noLibzError();
|
||||
_noGd2Error();
|
||||
return NULL;
|
||||
}
|
||||
#endif /* HAVE_LIBZ */
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
LIST(APPEND TESTS_FILES
|
||||
gd_versiontest
|
||||
)
|
||||
|
||||
IF(ENABLE_GD_FORMATS)
|
||||
LIST(APPEND TESTS_FILES
|
||||
gd_null
|
||||
gd_num_colors
|
||||
gd_versiontest
|
||||
)
|
||||
|
||||
IF(PNG_FOUND)
|
||||
|
@ -9,5 +13,6 @@ LIST(APPEND TESTS_FILES
|
|||
gd_im2im
|
||||
)
|
||||
ENDIF(PNG_FOUND)
|
||||
ENDIF(ENABLE_GD_FORMATS)
|
||||
|
||||
ADD_GD_TESTS()
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
libgd_test_programs += \
|
||||
gd/gd_versiontest
|
||||
|
||||
if ENABLE_GD_FORMATS
|
||||
libgd_test_programs += \
|
||||
gd/gd_null \
|
||||
gd/gd_num_colors \
|
||||
gd/gd_versiontest
|
||||
gd/gd_num_colors
|
||||
|
||||
if HAVE_LIBPNG
|
||||
libgd_test_programs += \
|
||||
gd/gd_im2im
|
||||
endif
|
||||
endif
|
||||
|
||||
EXTRA_DIST += \
|
||||
gd/crafted_num_colors.gd \
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
IF(ENABLE_GD_FORMATS)
|
||||
IF(ZLIB_FOUND)
|
||||
LIST(APPEND TESTS_FILES
|
||||
bug_289
|
||||
bug00209
|
||||
|
@ -5,15 +7,11 @@ LIST(APPEND TESTS_FILES
|
|||
bug00354
|
||||
gd2_empty_file
|
||||
php_bug_72339
|
||||
gd2_null
|
||||
gd2_read_corrupt
|
||||
too_few_image_data
|
||||
)
|
||||
|
||||
IF(ZLIB_FOUND)
|
||||
LIST(APPEND TESTS_FILES
|
||||
gd2_null
|
||||
)
|
||||
|
||||
IF(PNG_FOUND)
|
||||
LIST(APPEND TESTS_FILES
|
||||
gd2_im2im
|
||||
|
@ -21,5 +19,6 @@ LIST(APPEND TESTS_FILES
|
|||
)
|
||||
ENDIF(PNG_FOUND)
|
||||
ENDIF(ZLIB_FOUND)
|
||||
ENDIF(ENABLE_GD_FORMATS)
|
||||
|
||||
ADD_GD_TESTS()
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
if ENABLE_GD_FORMATS
|
||||
if HAVE_LIBZ
|
||||
libgd_test_programs += \
|
||||
gd2/bug_289 \
|
||||
gd2/bug00209 \
|
||||
|
@ -5,19 +7,17 @@ libgd_test_programs += \
|
|||
gd2/bug00354 \
|
||||
gd2/gd2_empty_file \
|
||||
gd2/php_bug_72339 \
|
||||
gd2/gd2_null \
|
||||
gd2/gd2_read_corrupt \
|
||||
gd2/too_few_image_data
|
||||
|
||||
if HAVE_LIBZ
|
||||
libgd_test_programs += \
|
||||
gd2/gd2_null
|
||||
|
||||
if HAVE_LIBPNG
|
||||
libgd_test_programs += \
|
||||
gd2/gd2_im2im \
|
||||
gd2/gd2_read
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
EXTRA_DIST += \
|
||||
gd2/CMakeLists.txt \
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
if HAVE_LIBTIFF
|
||||
if HAVE_LIBWEBP
|
||||
if ENABLE_GD_FORMATS
|
||||
libgd_test_programs += \
|
||||
gdimagefile/gdnametest
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
EXTRA_DIST += \
|
||||
gdimagefile/CMakeLists.txt \
|
||||
|
|
|
@ -10,8 +10,13 @@ LIST(APPEND TESTS_FILES
|
|||
bug00193
|
||||
bug00338
|
||||
bug00381_1
|
||||
)
|
||||
|
||||
IF(ENABLE_GD_FORMATS)
|
||||
LIST(APPEND TESTS_FILES
|
||||
bug00381_2
|
||||
)
|
||||
ENDIF(ENABLE_GD_FORMATS)
|
||||
ENDIF(PNG_FOUND)
|
||||
|
||||
ADD_GD_TESTS()
|
||||
|
|
|
@ -7,10 +7,14 @@ libgd_test_programs += \
|
|||
png/bug00193 \
|
||||
png/bug00338 \
|
||||
png/bug00381_1 \
|
||||
png/bug00381_2 \
|
||||
png/png_im2im \
|
||||
png/png_null \
|
||||
png/png_resolution
|
||||
|
||||
if ENABLE_GD_FORMATS
|
||||
libgd_test_programs += \
|
||||
png/bug00381_2
|
||||
endif
|
||||
endif
|
||||
|
||||
EXTRA_DIST += \
|
||||
|
|
|
@ -71,6 +71,7 @@ build_autotools() {
|
|||
--prefix=/usr/local \
|
||||
--libdir=/usr/local/lib \
|
||||
--enable-werror \
|
||||
--enable-gd-formats \
|
||||
--with-fontconfig \
|
||||
--with-freetype \
|
||||
--with-jpeg \
|
||||
|
@ -100,6 +101,7 @@ build_cmake() {
|
|||
-DBUILD_TEST=1
|
||||
-DCMAKE_INSTALL_PREFIX=/usr/local
|
||||
-DCMAKE_INSTALL_LIBDIR=/usr/local/lib
|
||||
-DENABLE_GD_FORMATS=1
|
||||
-DENABLE_FONTCONFIG=1
|
||||
-DENABLE_FREETYPE=1
|
||||
-DENABLE_JPEG=1
|
||||
|
|
Loading…
Reference in New Issue