Browse Source

libgd: Switch to CMake

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>
lilik-openwrt-22.03
Rosen Penev 5 years ago
parent
commit
3e44ecbafa
No known key found for this signature in database GPG Key ID: 36D31CFA845F0E3B
5 changed files with 49 additions and 97 deletions
  1. +23
    -44
      libs/libgd/Makefile
  2. +26
    -0
      libs/libgd/patches/100-no-cxx.patch
  3. +0
    -20
      libs/libgd/patches/101-gdlib-config.patch
  4. +0
    -9
      libs/libgd/patches/102-gdlib-pc-in.patch
  5. +0
    -24
      libs/libgd/patches/200-uclibc-ceill.patch

+ 23
- 44
libs/libgd/Makefile View 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))

+ 26
- 0
libs/libgd/patches/100-no-cxx.patch View File

@ -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)

+ 0
- 20
libs/libgd/patches/101-gdlib-config.patch View File

@ -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@"
;;

+ 0
- 9
libs/libgd/patches/102-gdlib-pc-in.patch View File

@ -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

+ 0
- 24
libs/libgd/patches/200-uclibc-ceill.patch View File

@ -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 */

Loading…
Cancel
Save