blob: f1bc84f8b9234462dfa10ecb2c13b6e2c47ac04b [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#
2# Copyright (C) 2006-2015 OpenWrt.org
3#
4# This is free software, licensed under the GNU General Public License v2.
5# See /LICENSE for more information.
6#
7
8include $(TOPDIR)/rules.mk
9
10PKG_NAME:=libgd
11PKG_VERSION:=2.3.3
12PKG_RELEASE:=1
13
14PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
15PKG_SOURCE_URL:=https://github.com/$(PKG_NAME)/$(PKG_NAME)/releases/download/gd-$(PKG_VERSION)/
16PKG_HASH:=3fe822ece20796060af63b7c60acb151e5844204d289da0ce08f8fdf131e5a61
17
18PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
19PKG_LICENSE:=GD
20PKG_LICENSE_FILES:=COPYING
21PKG_CPE_ID:=cpe:/a:libgd:libgd
22
23PKG_BUILD_FLAGS:=lto
24
25include $(INCLUDE_DIR)/package.mk
26include $(INCLUDE_DIR)/cmake.mk
27
28define Package/libgd/default
29 SECTION:=libs
30 CATEGORY:=Libraries
31 DEPENDS:=+libjpeg +libpng +libwebp
32 TITLE:=The GD graphics library
33 URL:=https://libgd.github.io/
34endef
35
36define Package/libgd
37 $(call Package/libgd/default)
38 MENU:=1
39 DEPENDS+=+LIBGD_TIFF:libtiff +LIBGD_FREETYPE:libfreetype
40 VARIANT:=default
41 CONFLICTS:=libgd-full
42endef
43
44define Package/libgd-full
45 $(call Package/libgd/default)
46 DEPENDS+=+libtiff +libfreetype
47 TITLE+=(full)
48 VARIANT:=full
49 PROVIDES:=libgd
50endef
51
52define Package/libgd/description/default
53 GD is an open source code library for the dynamic creation of images by
54 programmers. GD creates PNG, JPEG and GIF images, among other formats.
55endef
56
57Package/libgd/description=$(Package/libgd/description/default)
58
59define Package/libgd-full/description
60 $(call Package/libgd/description/default)
61 .
62 This variant of the libgd package is compiled will all features enabled.
63endef
64
65define Package/libgd/config
66 if PACKAGE_libgd
67 config LIBGD_TIFF
68 bool "TIFF image support"
69 default n
70 help
71 Enable TIFF image support through libtiff
72 endif
73 if PACKAGE_libgd
74 config LIBGD_FREETYPE
75 bool "Freetype 2.x library support"
76 default n
77 help
78 Enable Freetype 2.x font engine support through libfreetype
79 endif
80endef
81
82TARGET_CFLAGS += $(FPIC) -ffunction-sections -fdata-sections
83
84CMAKE_OPTIONS += \
85 -DENABLE_FONTCONFIG=OFF \
86 -DENABLE_ICONV=OFF \
87 -DENABLE_JPEG=ON \
88 -DENABLE_LIQ=OFF \
89 -DENABLE_PNG=ON \
90 -DENABLE_TIFF=$(if $(CONFIG_LIBGD_TIFF),ON,OFF) \
91 -DENABLE_WEBP=ON \
92 -DENABLE_XPM=OFF \
93 -DZLIB_INCLUDE_DIR="$(STAGING_DIR)/usr"
94
95ifeq ($(BUILD_VARIANT),full)
96 CMAKE_OPTIONS += \
97 -DENABLE_TIFF=ON \
98 -DFREETYPE_INCLUDE_DIRS=$(STAGING_DIR)/usr/include/freetype2/ \
99 -DENABLE_FREETYPE=ON
100
101else
102
103ifdef CONFIG_LIBGD_FREETYPE
104 CMAKE_OPTIONS += \
105 -DFREETYPE_INCLUDE_DIRS=$(STAGING_DIR)/usr/include/freetype2/ \
106 -DENABLE_FREETYPE=ON
107else
108 CMAKE_OPTIONS += \
109 -DENABLE_FREETYPE=OFF
110endif
111
112endif
113
114define Build/InstallDev
115 $(call Build/InstallDev/cmake,$(1))
116 $(SED) 's,/usr/lib,$(STAGING_DIR)/usr/lib,g' $(1)/usr/lib/pkgconfig/gdlib.pc
117 $(SED) 's,/usr/include,$(STAGING_DIR)/include,g' $(1)/usr/lib/pkgconfig/gdlib.pc
118endef
119
120define Package/libgd/install
121 $(INSTALL_DIR) $(1)/usr/lib
122 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgd.so* $(1)/usr/lib/
123endef
124
125Package/libgd-full/install=$(Package/libgd/install)
126
127$(eval $(call BuildPackage,libgd))
128$(eval $(call BuildPackage,libgd-full))