Message ID | 1410537011-29662-12-git-send-email-jezz@sysmic.org |
---|---|
State | Accepted |
Headers | show |
>>>>> "Jérôme" == Jérôme Pouiller <jezz@sysmic.org> writes: > 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. > Signed-off-by: Jérôme Pouiller <jezz@sysmic.org> > --- > package/cairo/cairo.mk | 5 ++++- > package/directfb/Config.in | 5 +++++ > package/directfb/directfb.mk | 7 +++++++ > 3 files changed, 16 insertions(+), 1 deletion(-) > diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk > index a4c71b6..bcc0c26 100644 > --- a/package/cairo/cairo.mk > +++ b/package/cairo/cairo.mk > @@ -48,7 +48,10 @@ CAIRO_CONF_OPT = \ > 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 > diff --git a/package/directfb/Config.in b/package/directfb/Config.in > index e3c93a1..dc01228 100644 > --- a/package/directfb/Config.in > +++ b/package/directfb/Config.in > @@ -125,6 +125,11 @@ config BR2_PACKAGE_DIRECTFB_PNG > default y > select BR2_PACKAGE_LIBPNG > +config BR2_PACKAGE_DIRECTFB_SVG > + bool "enable SVG support" > + default y > + select BR2_PACKAGE_CAIRO cairo depends on BR2_ARCH_HAS_ATOMICS, so this should also do so. I suspect this also needs the SVG backend of cairo. From config.log: configure:19926: checking for libsvg-cairo >= 0.1.6 configure:19936: result: not found configure:19939: WARNING: *** SVG-Cairo at least 0.1.6 not found -- SVG image provider will not be built. So it actually needs libsvg-cairo (which pulls in cairo and the svg backend of cairo). It also needs some help to find the cairo includes: make[5]: Entering directory '/home/peko/source/buildroot/output/build/directfb-1.6.3/interfaces/IDirectFBImageProvider' CC idirectfbimageprovider_dfiff.lo CC idirectfbimageprovider_bmp.lo CC idirectfbimageprovider_pnm.lo CC idirectfbimageprovider_svg.lo CC idirectfbimageprovider_mpeg2.lo idirectfbimageprovider_svg.c:46:19: fatal error: cairo.h: No such file or directory compilation terminated. Makefile:817: recipe for target 'idirectfbimageprovider_svg.lo' failed make[5]: *** [idirectfbimageprovider_svg.lo] Error 1 make[5]: *** Waiting for unfinished jobs.... Committed with that fixed, thanks.
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk index a4c71b6..bcc0c26 100644 --- a/package/cairo/cairo.mk +++ b/package/cairo/cairo.mk @@ -48,7 +48,10 @@ CAIRO_CONF_OPT = \ 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 diff --git a/package/directfb/Config.in b/package/directfb/Config.in index e3c93a1..dc01228 100644 --- a/package/directfb/Config.in +++ b/package/directfb/Config.in @@ -125,6 +125,11 @@ config BR2_PACKAGE_DIRECTFB_PNG default y select BR2_PACKAGE_LIBPNG +config BR2_PACKAGE_DIRECTFB_SVG + bool "enable SVG support" + default y + select BR2_PACKAGE_CAIRO + config BR2_PACKAGE_DIRECTFB_DITHER_RGB16 bool "enable advanced dithering of RGB16 surfaces" help diff --git a/package/directfb/directfb.mk b/package/directfb/directfb.mk index 3ae7f3e..dd2ca99 100644 --- a/package/directfb/directfb.mk +++ b/package/directfb/directfb.mk @@ -116,6 +116,13 @@ else DIRECTFB_CONF_OPT += --disable-jpeg endif +ifeq ($(BR2_PACKAGE_DIRECTFB_SVG),y) +DIRECTFB_CONF_OPT += --enable-svg +DIRECTFB_DEPENDENCIES += cairo +else +DIRECTFB_CONF_OPT += --disable-svg +endif + ifeq ($(BR2_PACKAGE_DIRECTFB_IMLIB2),y) DIRECTFB_CONF_OPT += --enable-imlib2 DIRECTFB_DEPENDENCIES += imlib2
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. Signed-off-by: Jérôme Pouiller <jezz@sysmic.org> --- package/cairo/cairo.mk | 5 ++++- package/directfb/Config.in | 5 +++++ package/directfb/directfb.mk | 7 +++++++ 3 files changed, 16 insertions(+), 1 deletion(-)