DirectFB SVG support rely on Cairo and Cairo depends on DirectFB.
Since Cairo DirectFB backend is marked as experimental, this patch choose to
disable this backend when DirectFB SVG support is enable.
In add, this patch may solve some tricky situations between DirectFB and Cairo
(see http://sysmic.org/~jezz/results/
c2f11fc0) and improve build reproducibility.
[Peter: propagate atomics dependency, needs libsvg-cairo, add cairo includes]
Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
CAIRO_DEPENDENCIES = host-pkgconf fontconfig pixman
-ifeq ($(BR2_PACKAGE_DIRECTFB),y)
+# DirectFB svg support rely on Cairo and Cairo DirectFB support depends on
+# DirectFB. Break circular dependency by disabling DirectFB support in Cairo
+# (which is experimental)
+ifeq ($(BR2_PACKAGE_DIRECTFB)x$(BR2_PACKAGE_DIRECTFB_SVG),yx)
CAIRO_CONF_OPT += --enable-directfb
CAIRO_DEPENDENCIES += directfb
else
default y
select BR2_PACKAGE_LIBPNG
+config BR2_PACKAGE_DIRECTFB_SVG
+ bool "enable SVG support"
+ depends on BR2_ARCH_HAS_ATOMICS # cairo
+ default y
+ select BR2_PACKAGE_LIBSVG_CAIRO
+
config BR2_PACKAGE_DIRECTFB_DITHER_RGB16
bool "enable advanced dithering of RGB16 surfaces"
help
DIRECTFB_CONF_OPT += --disable-jpeg
endif
+ifeq ($(BR2_PACKAGE_DIRECTFB_SVG),y)
+DIRECTFB_CONF_OPT += --enable-svg
+# needs some help to find cairo includes
+DIRECTFB_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -I$(STAGING_DIR)/usr/include/cairo"
+DIRECTFB_DEPENDENCIES += libsvg-cairo
+else
+DIRECTFB_CONF_OPT += --disable-svg
+endif
+
ifeq ($(BR2_PACKAGE_DIRECTFB_IMLIB2),y)
DIRECTFB_CONF_OPT += --enable-imlib2
DIRECTFB_DEPENDENCIES += imlib2