glib2: split package into separate libraries

Existing package contains five libraries, some of which are > 1MB. Allow
packages which depend on only some of them to only pull in the ones they
need by splitting this package into finer-grained packages. Transition
can be done piecemeal as depending on glib2 will still pull in all the
libraries.

Signed-off-by: Peter Denison <openwrt@marshadder.org>
This commit is contained in:
Peter Denison
2023-10-29 17:49:58 +00:00
committed by Philip Prindeville
parent b1a49e6ca3
commit 6bb0d6bd2a
+92 -6
View File
@@ -33,14 +33,68 @@ include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/meson.mk
define Package/glib2
define Package/glib2/default
SECTION:=libs
CATEGORY:=Libraries
DEPENDS:=$(ICONV_DEPENDS) $(INTL_DEPENDS) +zlib +libpthread +libffi +libattr +libpcre2
TITLE:=glib 2.0
URL:=http://www.gtk.org/
endef
define Package/glib2-core
$(call Package/glib2/default)
TITLE:=GLib 2.0 core library
DEPENDS:=$(ICONV_DEPENDS) $(INTL_DEPENDS) +libattr +libpcre2
endef
define Package/glib2-gmodule
$(call Package/glib2/default)
TITLE:=GLib 2.0 gmodule library
DEPENDS:=+glib2-core
endef
define Package/glib2-gthread
$(call Package/glib2/default)
TITLE:=GLib 2.0 gthread library
DEPENDS:=+glib2-core
endef
define Package/glib2-gobject
$(call Package/glib2/default)
TITLE:=GLib 2.0 gobject library
DEPENDS:=+glib2-core +libffi
endef
define Package/glib2-gio
$(call Package/glib2/default)
TITLE:=GLib 2.0 gio library
DEPENDS:=+glib2-core +glib2-gobject +glib2-gmodule +zlib +libffi
endef
define Package/glib2
$(call Package/glib2/default)
TITLE:=Full GLib 2.0 library
DEPENDS:+glib2-gthread +glib2-gio
endef
define Package/glib2-core/description
Common code and core library for GLib library of C routines
endef
define Package/glib2-gmodule/description
GLib library module functions
endef
define Package/glib2-gthread/description
GLib library thread functions
endef
define Package/glib2-gobject/description
GLib library object functions
endef
define Package/glib2-gio/description
GLib library io functions
endef
define Package/glib2/description
The GLib library of C routines
endef
@@ -122,12 +176,44 @@ define Build/InstallDev
$(1)/usr/share/glib-2.0/
endef
define Package/glib2/install
define Package/glib2-core/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/*.so* \
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libglib-2.0.so* \
$(1)/usr/lib/
endef
define Package/glib2-gmodule/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libgmodule-2.0.so* \
$(1)/usr/lib
endef
define Package/glib2-gthread/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libgthread-2.0.so* \
$(1)/usr/lib
endef
define Package/glib2-gobject/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libgobject-2.0.so* \
$(1)/usr/lib
endef
define Package/glib2-gio/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libgio-2.0.so* \
$(1)/usr/lib
endef
define Package/glib2/install
:
endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,glib2-core))
$(eval $(call BuildPackage,glib2-gmodule))
$(eval $(call BuildPackage,glib2-gthread))
$(eval $(call BuildPackage,glib2-gobject))
$(eval $(call BuildPackage,glib2-gio))
$(eval $(call BuildPackage,glib2))