Patchwork [3/9] gtk.inc: add directfb DISTRO_FEATURE

login
register
mail settings
Submitter Xiaofeng Yan
Date Nov. 24, 2011, 3:06 a.m.
Message ID <20d46c74e1c1de68ca86b5b7eded5ae66a142e85.1322102636.git.xiaofeng.yan@windriver.com>
Download mbox | patch
Permalink /patch/15351/
State New
Headers show

Comments

Xiaofeng Yan - Nov. 24, 2011, 3:06 a.m.
From: Xiaofeng Yan <xiaofeng.yan@windriver.com>

gtk run over x11 at current OE-core. If gtk want to run over directfb, then \
the configuration related to x11 should be disabled and directfb should be enabled.

[YOCTO #1674]

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
---
 meta/recipes-gnome/gtk+/gtk+.inc |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)
Koen Kooi - Nov. 24, 2011, 6:38 a.m.
Op 24 nov. 2011, om 04:06 heeft Xiaofeng Yan het volgende geschreven:

> From: Xiaofeng Yan <xiaofeng.yan@windriver.com>
> 
> gtk run over x11 at current OE-core. If gtk want to run over directfb, then \
> the configuration related to x11 should be disabled and directfb should be enabled.

Apart from this patch is messing with PACKAGES as well, I still don't believe it's true that x11 must be disabled for directfb to work



> 
> [YOCTO #1674]
> 
> Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
> ---
> meta/recipes-gnome/gtk+/gtk+.inc |   20 ++++++++++++++++----
> 1 files changed, 16 insertions(+), 4 deletions(-)
> 
> diff --git a/meta/recipes-gnome/gtk+/gtk+.inc b/meta/recipes-gnome/gtk+/gtk+.inc
> index 0e5c45c..926f7dd 100644
> --- a/meta/recipes-gnome/gtk+/gtk+.inc
> +++ b/meta/recipes-gnome/gtk+/gtk+.inc
> @@ -9,13 +9,20 @@ LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
> LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
> 
> SECTION = "libs"
> -DEPENDS = "glib-2.0 pango atk jpeg libpng libxext libxcursor \
> -           gtk-doc-native docbook-utils-native libxrandr libgcrypt \
> -           libxdamage libxrender libxcomposite cairo gdk-pixbuf"
> +X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
> +
> +DEPENDS = "glib-2.0 pango atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native \
> +           libgcrypt cairo gdk-pixbuf"
> +
> +PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
> +           ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}"
> +
> +PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS}"
> +PACKAGECONFIG[directfb] = "--with-gdktarget=directfb,,directfb"
> 
> inherit autotools pkgconfig
> 
> -PACKAGES += "libgail"
> +PACKAGES += "libgail gtk-demo"
> 
> FILES_${PN} = "${bindir}/gtk-update-icon-cache \
> 	${bindir}/gtk-query-immodules-2.0 \
> @@ -40,6 +47,11 @@ FILES_${PN}-dbg += " \
> 	${libdir}/gtk-2.0/${LIBV}/engines/.debug/* \
> 	${libdir}/gtk-2.0/${LIBV}/printbackends/.debug/*"
> 
> +FILES_gtk-demo = " \
> +        ${datadir}/gtk-2.0/demo/* \
> +        ${bindir}/gtk-demo \
> +        "
> +
> FILES_libgail = " \
> 	${libdir}/gtk-2.0/modules/libgail.so \
> 	${libdir}/gtk-2.0/modules/libferret.so \
> -- 
> 1.7.0.4
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Xiaofeng Yan - Nov. 24, 2011, 7:28 a.m.
On 2011?11?24? 14:38, Koen Kooi wrote:
> Op 24 nov. 2011, om 04:06 heeft Xiaofeng Yan het volgende geschreven:
>
>> From: Xiaofeng Yan<xiaofeng.yan@windriver.com>
>>
>> gtk run over x11 at current OE-core. If gtk want to run over directfb, then \
>> the configuration related to x11 should be disabled and directfb should be enabled.
> Apart from this patch is messing with PACKAGES as well, I still don't believe it's true that x11 must be disabled for directfb to work
>
>
As what I explained yesterday, One main goal of this image is to remove 
the stuff related to x11 because I want to build an image only based on 
directfb and run gtk over directfb.
you know, directfb as a graphic library is enough in many embedded 
development. It has many advantages in embedded field like digital 
television, set-top box, ...  Of course, it has its defect in other 
aspect. So x11 is not needed in this image.  I just don't want to let 
user to take too much time for building an image including directfb with 
no x11 during developing product.
>> [YOCTO #1674]
>>
>> Signed-off-by: Xiaofeng Yan<xiaofeng.yan@windriver.com>
>> ---
>> meta/recipes-gnome/gtk+/gtk+.inc |   20 ++++++++++++++++----
>> 1 files changed, 16 insertions(+), 4 deletions(-)
>>
>> diff --git a/meta/recipes-gnome/gtk+/gtk+.inc b/meta/recipes-gnome/gtk+/gtk+.inc
>> index 0e5c45c..926f7dd 100644
>> --- a/meta/recipes-gnome/gtk+/gtk+.inc
>> +++ b/meta/recipes-gnome/gtk+/gtk+.inc
>> @@ -9,13 +9,20 @@ LICENSE = "LGPLv2&  LGPLv2+&  LGPLv2.1+"
>> LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
>>
>> SECTION = "libs"
>> -DEPENDS = "glib-2.0 pango atk jpeg libpng libxext libxcursor \
>> -           gtk-doc-native docbook-utils-native libxrandr libgcrypt \
>> -           libxdamage libxrender libxcomposite cairo gdk-pixbuf"
>> +X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
>> +
>> +DEPENDS = "glib-2.0 pango atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native \
>> +           libgcrypt cairo gdk-pixbuf"
>> +
>> +PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
>> +           ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}"
>> +
>> +PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS}"
>> +PACKAGECONFIG[directfb] = "--with-gdktarget=directfb,,directfb"
>>
>> inherit autotools pkgconfig
>>
>> -PACKAGES += "libgail"
>> +PACKAGES += "libgail gtk-demo"
>>
>> FILES_${PN} = "${bindir}/gtk-update-icon-cache \
>> 	${bindir}/gtk-query-immodules-2.0 \
>> @@ -40,6 +47,11 @@ FILES_${PN}-dbg += " \
>> 	${libdir}/gtk-2.0/${LIBV}/engines/.debug/* \
>> 	${libdir}/gtk-2.0/${LIBV}/printbackends/.debug/*"
>>
>> +FILES_gtk-demo = " \
>> +        ${datadir}/gtk-2.0/demo/* \
>> +        ${bindir}/gtk-demo \
>> +        "
>> +
>> FILES_libgail = " \
>> 	${libdir}/gtk-2.0/modules/libgail.so \
>> 	${libdir}/gtk-2.0/modules/libferret.so \
>> -- 
>> 1.7.0.4
>>
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Koen Kooi - Nov. 24, 2011, 8:57 a.m.
Op 24 nov. 2011, om 08:28 heeft Xiaofeng Yan het volgende geschreven:

> On 2011?11?24? 14:38, Koen Kooi wrote:
>> Op 24 nov. 2011, om 04:06 heeft Xiaofeng Yan het volgende geschreven:
>> 
>> 
>>> From: Xiaofeng Yan <xiaofeng.yan@windriver.com>
>>> 
>>> 
>>> gtk run over x11 at current OE-core. If gtk want to run over directfb, then \
>>> the configuration related to x11 should be disabled and directfb should be enabled.
>>> 
>> Apart from this patch is messing with PACKAGES as well, I still don't believe it's true that x11 must be disabled for directfb to work
>> 
>> 
>> 
> As what I explained yesterday, One main goal of this image is to remove the stuff related to x11 because I want to build an image only based on directfb and run gtk over directfb.  

And you can do that perfectly well without disabling x11.

> you know, directfb as a graphic library is enough in many embedded development. It has many advantages in embedded field like digital television, set-top box, ...  Of course, it has its defect in other aspect. So x11 is not needed in this image.  I just don't want to let user to take too much time for building an image including directfb with no x11 during developing product. 

I still don't see a decent reason for disabling x11 for directfb
Phil Blundell - Nov. 24, 2011, 11:04 a.m.
On Thu, 2011-11-24 at 07:38 +0100, Koen Kooi wrote:
> Op 24 nov. 2011, om 04:06 heeft Xiaofeng Yan het volgende geschreven:
> 
> > From: Xiaofeng Yan <xiaofeng.yan@windriver.com>
> > 
> > gtk run over x11 at current OE-core. If gtk want to run over directfb, then \
> > the configuration related to x11 should be disabled and directfb should be enabled.
> 
> Apart from this patch is messing with PACKAGES as well, I still don't believe it's true that x11 must be disabled for directfb to work

[...]

> +PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
> +           ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}"
> +
> +PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS}"
> +PACKAGECONFIG[directfb] = "--with-gdktarget=directfb,,directfb"

If you're using a version of GTK+ which expects the "--with-gdktarget"
option then I think it is true that X11 and directfb are exclusive since
you can only have one backend enabled at a time.  There's nothing you
can do in the recipe that will help with this, though it would be nice
if you got a sensible diagnostic rather than one of the options just
being silently ignored.

With newer versions (3.0 and later, I think) there are separate
--enable-FOO-backend options for the different backends and you can turn
on as many as you want at the same time.  In those versions I don't
think --with-gdktarget will do anything useful at all so this patch
won't work.

p.

Patch

diff --git a/meta/recipes-gnome/gtk+/gtk+.inc b/meta/recipes-gnome/gtk+/gtk+.inc
index 0e5c45c..926f7dd 100644
--- a/meta/recipes-gnome/gtk+/gtk+.inc
+++ b/meta/recipes-gnome/gtk+/gtk+.inc
@@ -9,13 +9,20 @@  LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
 
 SECTION = "libs"
-DEPENDS = "glib-2.0 pango atk jpeg libpng libxext libxcursor \
-           gtk-doc-native docbook-utils-native libxrandr libgcrypt \
-           libxdamage libxrender libxcomposite cairo gdk-pixbuf"
+X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
+
+DEPENDS = "glib-2.0 pango atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native \
+           libgcrypt cairo gdk-pixbuf"
+
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+           ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}"
+
+PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS}"
+PACKAGECONFIG[directfb] = "--with-gdktarget=directfb,,directfb"
 
 inherit autotools pkgconfig
 
-PACKAGES += "libgail"
+PACKAGES += "libgail gtk-demo"
 
 FILES_${PN} = "${bindir}/gtk-update-icon-cache \
 	${bindir}/gtk-query-immodules-2.0 \
@@ -40,6 +47,11 @@  FILES_${PN}-dbg += " \
 	${libdir}/gtk-2.0/${LIBV}/engines/.debug/* \
 	${libdir}/gtk-2.0/${LIBV}/printbackends/.debug/*"
 
+FILES_gtk-demo = " \
+        ${datadir}/gtk-2.0/demo/* \
+        ${bindir}/gtk-demo \
+        "
+
 FILES_libgail = " \
 	${libdir}/gtk-2.0/modules/libgail.so \
 	${libdir}/gtk-2.0/modules/libferret.so \