libgd: Switch to CMake 9963/head
authorRosen Penev <rosenp@gmail.com>
Tue, 10 Sep 2019 20:49:21 +0000 (13:49 -0700)
committerRosen Penev <rosenp@gmail.com>
Thu, 12 Sep 2019 21:48:32 +0000 (14:48 -0700)
Size reduced from 92878 to 91675 bytes.

CMake added CXX files. Removed those.

Removed ceill patch. ceill is not used anymore.

Removed pkgconfig patch. CMake uses a different file, which does not have
this problem.

Further size reduction to 87938 with LTO.

Removed InstallDev. CMAKE_INSTALL takes care of that.

Added WebP support.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
libs/libgd/Makefile
libs/libgd/patches/100-no-cxx.patch [new file with mode: 0644]
libs/libgd/patches/101-gdlib-config.patch [deleted file]
libs/libgd/patches/102-gdlib-pc-in.patch [deleted file]
libs/libgd/patches/200-uclibc-ceill.patch [deleted file]

index 75593183a89e245347305c212a910e2e0e38c8c2..b76f2615c0f4f0a1b12c9e02c31cb962fb262ebb 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libgd
 PKG_VERSION:=2.2.5
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/$(PKG_NAME)/$(PKG_NAME)/releases/download/gd-$(PKG_VERSION)/
@@ -19,16 +19,16 @@ PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
 
-PKG_FIXUP:=autoreconf
-PKG_INSTALL:=1
+CMAKE_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libgd
   SECTION:=libs
   CATEGORY:=Libraries
-  DEPENDS:=+libjpeg +libpng +LIBGD_TIFF:libtiff +LIBGD_FREETYPE:libfreetype
+  DEPENDS:=+libjpeg +libpng +libwebp +LIBGD_TIFF:libtiff +LIBGD_FREETYPE:libfreetype
   TITLE:=The GD graphics library
   URL:=https://libgd.github.io/
   MENU:=1
@@ -56,58 +56,37 @@ define Package/libgd/config
        endif
 endef
 
-TARGET_CFLAGS += $(FPIC)
+TARGET_CFLAGS += $(FPIC) -ffunction-sections -fdata-sections -flto
 
-CONFIGURE_ARGS += \
-       --enable-shared \
-       --enable-static \
-       --disable-rpath \
-       --without-x \
-       --without-fontconfig \
-       --with-jpeg=$(STAGING_DIR)/usr \
-       --with-png=$(STAGING_DIR)/usr \
-       --without-xpm
+CMAKE_OPTIONS += \
+       -DENABLE_FONTCONFIG=OFF \
+       -DENABLE_ICONV=OFF \
+       -DENABLE_JPEG=ON \
+       -DENABLE_LIQ=OFF \
+       -DENABLE_PNG=ON \
+       -DENABLE_WEBP=ON \
+       -DENABLE_XPM=OFF \
+       -DZLIB_INCLUDE_DIR="$(STAGING_DIR)/usr"
 
 ifdef CONFIG_LIBGD_TIFF
-       CONFIGURE_ARGS+= \
-               --with-tiff=$(STAGING_DIR)/usr
+       CMAKE_OPTIONS += \
+               -DENABLE_TIFF=ON
 else
-       CONFIGURE_ARGS+= \
-               --without-tiff
+       CMAKE_OPTIONS += \
+               -DENABLE_TIFF=OFF
 endif
 
 ifdef CONFIG_LIBGD_FREETYPE
-       CONFIGURE_ARGS+= \
-               --with-freetype=$(STAGING_DIR)/usr
+       CMAKE_OPTIONS += \
+               -DENABLE_FREETYPE=ON
 else
-       CONFIGURE_ARGS+= \
-               --without-freetype
+       CMAKE_OPTIONS += \
+               -DENABLE_FREETYPE=OFF
 endif
 
-CONFIGURE_VARS += \
-       ac_cv_header_iconv_h=no \
-       am_cv_func_iconv_works=no \
-       am_func_iconv=no
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/gdlib-config $(1)/usr/bin/
-       $(SED) \
-               's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' \
-               $(1)/usr/bin/gdlib-config
-       $(INSTALL_DIR) $(1)/usr/include
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/entities.h $(1)/usr/include/
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/gd{,_color_map,_errors,_io,cache,fontg,fontl,fontmb,fonts,fontt,fx,pp}.h \
-               $(1)/usr/include/
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgd.{a,la,so*} $(1)/usr/lib/
-       $(INSTALL_DIR) $(2)/bin
-       $(LN) ../../usr/bin/gdlib-config $(2)/bin/
-endef
-
 define Package/libgd/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgd.so.* $(1)/usr/lib/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libgd.so $(1)/usr/lib/
 endef
 
 $(eval $(call BuildPackage,libgd))
diff --git a/libs/libgd/patches/100-no-cxx.patch b/libs/libgd/patches/100-no-cxx.patch
new file mode 100644 (file)
index 0000000..3659fee
--- /dev/null
@@ -0,0 +1,26 @@
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -23,8 +23,6 @@ SET (LIBGD_SRC_FILES
+       gd_io_dp.c
+       gd_io_file.c
+       gd_io_ss.c
+-      gd_io_stream.cxx
+-      gd_io_stream.h
+       gd_jpeg.c
+       gd_matrix.c
+       gd_nnquant.c
+@@ -60,8 +58,6 @@ SET (LIBGD_SRC_FILES
+       gdhelpers.c
+       gdhelpers.h
+       gdkanji.c
+-      gdpp.cxx
+-      gdpp.h
+       gdtables.c
+       gdxpm.c
+       jisx0208.h
+@@ -175,5 +171,4 @@ install(FILES
+       gdfonts.h
+       gdfontt.h
+       gdfx.h
+-      gdpp.h
+       DESTINATION include)
diff --git a/libs/libgd/patches/101-gdlib-config.patch b/libs/libgd/patches/101-gdlib-config.patch
deleted file mode 100644 (file)
index b0d82b7..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/config/gdlib-config.in
-+++ b/config/gdlib-config.in
-@@ -74,7 +74,7 @@ while test $# -gt 0; do
-       echo @LDFLAGS@
-       ;;
-     --libs)
--      echo -lgd @LIBS@ @LIBICONV@
-+      echo -lgd @LIBS@
-       ;;
-     --cflags|--includes)
-       echo -I@includedir@
-@@ -87,7 +87,7 @@ while test $# -gt 0; do
-       echo "includedir: $includedir"
-       echo "cflags:     -I@includedir@"
-       echo "ldflags:    @LDFLAGS@"
--      echo "libs:       @LIBS@ @LIBICONV@"
-+      echo "libs:       @LIBS@"
-       echo "libdir:     $libdir"
-       echo "features:   @FEATURES@"
-       ;;
diff --git a/libs/libgd/patches/102-gdlib-pc-in.patch b/libs/libgd/patches/102-gdlib-pc-in.patch
deleted file mode 100644 (file)
index 79baeb3..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/config/gdlib.pc.in
-+++ b/config/gdlib.pc.in
-@@ -7,5 +7,5 @@ Name: gd
- Description: GD graphics library
- Version: @VERSION@
- Cflags: -I${includedir}
--Libs.private: @LIBS@ @LIBICONV@
-+Libs.private: @LIBS@ 
- Libs: -L${libdir} -lgd
diff --git a/libs/libgd/patches/200-uclibc-ceill.patch b/libs/libgd/patches/200-uclibc-ceill.patch
deleted file mode 100644 (file)
index 1b4fc8e..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/src/gd_bmp.c
-+++ b/src/gd_bmp.c
-@@ -28,6 +28,7 @@
- #include <math.h>
- #include <string.h>
- #include <stdlib.h>
-+#include <features.h>
- #include "gd.h"
- #include "gdhelpers.h"
- #include "bmp.h"
-@@ -49,6 +50,13 @@ static int bmp_read_rle(gdImagePtr im, g
- #define BMP_DEBUG(s)
-+#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LONG_DOUBLE_MATH__)
-+long double ceill(long double x)
-+{
-+      return (long double)ceil((double)x);
-+}
-+#endif
-+
- static int gdBMPPutWord(gdIOCtx *out, int w)
- {
-       /* Byte order is little-endian */