1b11285893
Unfortunately gdk-pixbuf-query-loaders doesn't understand cross loaders to update the cache, hence we can't use the host variant against target loaders since it will output an effectively empty cache, causing runtime failure of libgtk when finding icons. So make host-gdk-pixbuf functionally equivalent to the target gdk-pixbuf so we can run gdk-pixbuf-query-loaders against the host plugins and just strip the host directory to make it runtime-compatible (like was done before for the target directory). This is still better than trying to update at runtime, since that would require a writable loaders.cache file in tmpfs or rw filesystem, not to mention the associated additional startup time. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
78 lines
2.5 KiB
Makefile
78 lines
2.5 KiB
Makefile
################################################################################
|
|
#
|
|
# gdk-pixbuf
|
|
#
|
|
################################################################################
|
|
|
|
GDK_PIXBUF_VERSION_MAJOR = 2.34
|
|
GDK_PIXBUF_VERSION = $(GDK_PIXBUF_VERSION_MAJOR).0
|
|
GDK_PIXBUF_SOURCE = gdk-pixbuf-$(GDK_PIXBUF_VERSION).tar.xz
|
|
GDK_PIXBUF_SITE = http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/$(GDK_PIXBUF_VERSION_MAJOR)
|
|
GDK_PIXBUF_LICENSE = LGPLv2+
|
|
GDK_PIXBUF_LICENSE_FILES = COPYING
|
|
GDK_PIXBUF_INSTALL_STAGING = YES
|
|
GDK_PIXBUF_DEPENDENCIES = \
|
|
host-gdk-pixbuf host-libglib2 host-pkgconf \
|
|
libglib2 $(if $(BR2_ENABLE_LOCALE),,libiconv)
|
|
HOST_GDK_PIXBUF_DEPENDENCIES = host-libpng host-pkgconf host-libglib2
|
|
|
|
GDK_PIXBUF_CONF_ENV = \
|
|
ac_cv_path_GLIB_GENMARSHAL=$(LIBGLIB2_HOST_BINARY) \
|
|
gio_can_sniff=no
|
|
|
|
GDK_PIXBUF_CONF_OPTS = --disable-glibtest
|
|
|
|
ifneq ($(BR2_PACKAGE_LIBPNG),y)
|
|
GDK_PIXBUF_CONF_OPTS += --without-libpng
|
|
else
|
|
GDK_PIXBUF_DEPENDENCIES += libpng
|
|
endif
|
|
|
|
ifneq ($(BR2_PACKAGE_JPEG),y)
|
|
HOST_GDK_PIXBUF_CONF_OPTS += --without-libjpeg
|
|
GDK_PIXBUF_CONF_OPTS += --without-libjpeg
|
|
else
|
|
GDK_PIXBUF_DEPENDENCIES += jpeg
|
|
HOST_GDK_PIXBUF_DEPENDENCIES += host-libjpeg
|
|
endif
|
|
|
|
ifneq ($(BR2_PACKAGE_TIFF),y)
|
|
GDK_PIXBUF_CONF_OPTS += --without-libtiff
|
|
HOST_GDK_PIXBUF_CONF_OPTS += --without-libtiff
|
|
else
|
|
GDK_PIXBUF_DEPENDENCIES += tiff
|
|
GDK_PIXBUF_CONF_ENV += \
|
|
LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libtiff-4`"
|
|
HOST_GDK_PIXBUF_DEPENDENCIES += host-tiff
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y)
|
|
GDK_PIXBUF_CONF_OPTS += --with-x11
|
|
GDK_PIXBUF_DEPENDENCIES += xlib_libX11
|
|
endif
|
|
|
|
# gdk-pixbuf requires the loaders.cache file populated to work properly
|
|
# Rather than doing so at runtime, since the fs can be read-only, do so
|
|
# here after building and installing to target.
|
|
# And since the cache file will contain absolute host directory names we
|
|
# need to sanitize (strip) them.
|
|
ifeq ($(BR2_STATIC_LIBS),)
|
|
define GDK_PIXBUF_UPDATE_CACHE
|
|
GDK_PIXBUF_MODULEDIR=$(HOST_DIR)/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders \
|
|
$(HOST_DIR)/usr/bin/gdk-pixbuf-query-loaders \
|
|
> $(TARGET_DIR)/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
|
|
$(SED) "s,$(HOST_DIR),,g" \
|
|
$(TARGET_DIR)/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
|
|
endef
|
|
GDK_PIXBUF_POST_INSTALL_TARGET_HOOKS += GDK_PIXBUF_UPDATE_CACHE
|
|
endif
|
|
|
|
# Tests don't build correctly with uClibc
|
|
define GDK_PIXBUF_DISABLE_TESTS
|
|
$(SED) 's/ tests//' $(@D)/Makefile.in
|
|
endef
|
|
GDK_PIXBUF_POST_PATCH_HOOKS += GDK_PIXBUF_DISABLE_TESTS
|
|
|
|
$(eval $(autotools-package))
|
|
$(eval $(host-autotools-package))
|