]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Check libgd before using
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 9 Dec 2016 15:39:58 +0000 (15:39 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 9 Dec 2016 15:39:58 +0000 (15:39 +0000)
CMakeLists.txt

index 2342048dbb11ab29c3d016fae0942004f5f30da1..3e775f4381ae90e96973b9b4123668bdb53ef533 100644 (file)
@@ -725,7 +725,22 @@ IF (ENABLE_GD MATCHES "ON")
        ProcessPackage(GD LIBRARY gd INCLUDE gd.h INCLUDE_SUFFIXES
                        include/gd include/libgd
                        ROOT ${GD_ROOT_DIR} MODULES gd)
-       SET(WITH_GD 1)
+       LIST(APPEND CMAKE_REQUIRED_INCLUDES "${GD_INCLUDE}")
+       LIST(APPEND CMAKE_REQUIRED_LIBRARIES "${GD_LIBRARY}")
+
+       CHECK_SYMBOL_EXISTS(gdImageSetInterpolationMethod gd.h GD_INTERPOLATION)
+       CHECK_SYMBOL_EXISTS(gdImageScale gd.h GD_SCALE)
+       CHECK_SYMBOL_EXISTS(gdImageGrayScale gd.h GD_GRAYSCALE)
+       CHECK_SYMBOL_EXISTS(gdImageCreateFromJpegPtr gd.h GD_JPEG)
+       CHECK_SYMBOL_EXISTS(gdImageCreateFromPngPtr gd.h GD_PNG)
+       CHECK_SYMBOL_EXISTS(gdImageCreateFromJpegPtr gd.h GD_BMP)
+       CHECK_SYMBOL_EXISTS(gdImageCreateFromBmpPtr gd.h GD_GIF)
+
+       IF(GD_INTERPOLATION AND GD_SCALE AND GD_GRAYSCALE AND GD_JPEG AND GD_PNG AND GD_GIF AND GD_BMP)
+               SET(WITH_GD 1)
+       ELSE()
+               MESSAGE(STATUS "Libgd is found but it is unusable")
+       ENDIF()
 ENDIF ()
 
 #Check for openssl (required for dkim)