All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-raspberrypi][PATCH v3 1/2] qt5: fixed raspberrypi support
@ 2016-01-18 14:13 John Madieu
  2016-01-18 14:13 ` [meta-raspberrypi][PATCH v3 2/2] layer.conf: avoid to force users to add the qt5 layer because of qtbase bbappend John Madieu
  0 siblings, 1 reply; 5+ messages in thread
From: John Madieu @ 2016-01-18 14:13 UTC (permalink / raw)
  To: yocto

    Because EGL properties were not defined properly, we always had the following error
        make: *** [egl] Error 1
        | EGL disabled.
        |  The EGL functionality test failed; EGL is required by some QPA plugins to manage cont
        |  You might need to modify the include and library search paths by editing QMAKE_INCDIR

    x11 in DISTRO_FEATURES also produced the following error
        error: 'QAccessible' has not been declared
        |              } else if (QStyleHelper::isInstanceOf(groupBox->styleObject,
        QAccessible::Grouping)) {
        |                                                       ^
        |Makefile:53048: recipe for target '.obj/qgtkstyle.o' failed

    This bbappend definitively fix these bug

Signed-off-by: John Madieu <j.madieu@expemb.com>
---
 qt5-layer/recipes-qt/qt5/qtbase_%.bbappend | 33 ++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 qt5-layer/recipes-qt/qt5/qtbase_%.bbappend

diff --git a/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend b/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
new file mode 100644
index 0000000..f61cd1d
--- /dev/null
+++ b/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
@@ -0,0 +1,33 @@
+
+# Raspberrypi only need gles2
+PACKAGECONFIG_GL = "gles2"
+
+QT_CONFIG_FLAGS_append = "${@base_contains('DISTRO_FEATURES', 'x11', ' -accessibility ', '', d)}"
+do_configure_prepend_rpi() {
+
+	sed -i 's!load(qt_config)!!' ${S}/mkspecs/linux-oe-g++/qmake.conf
+    if ! grep -q '^EGLFS_' ${S}/mkspecs/linux-oe-g++/qmake.conf; then
+        cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <<EOF
+QMAKE_INCDIR_EGL = \$\$[QT_SYSROOT]${includedir}/interface/vcos/pthreads \$\$[QT_SYSROOT]${includedir}/interface/vmcs_host/linux
+QMAKE_INCDIR_OPENGL_ES2 = \$\${QMAKE_INCDIR_EGL}
+QMAKE_LIBS_EGL = -lEGL -lGLESv2
+EOF
+
+        if [ -d ${S}/src/plugins/platforms/eglfs/deviceintegration/eglfs_brcm ]; then
+            cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <<EOF
+EGLFS_DEVICE_INTEGRATION = eglfs_brcm
+EOF
+        else
+            cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <<EOF
+EGLFS_PLATFORM_HOOKS_LIBS = -lbcm_host
+EGLFS_PLATFORM_HOOKS_SOURCES = \$\$PWD/../devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp
+EOF
+        fi
+    fi
+    cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <<EOF
+
+
+load(qt_config)
+
+EOF
+}
-- 
1.9.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [meta-raspberrypi][PATCH v3 1/2] qt5: fixed raspberrypi support
@ 2016-02-02 17:04 John Madieu
  2016-02-02 17:04 ` [meta-raspberrypi][PATCH v3 2/2] layer.conf: avoid to force users to add the qt5 layer because of qtbase bbappend John Madieu
  0 siblings, 1 reply; 5+ messages in thread
From: John Madieu @ 2016-02-02 17:04 UTC (permalink / raw)
  To: yocto

    Because EGL properties were not defined properly, we always had the following error
        make: *** [egl] Error 1
        | EGL disabled.
        |  The EGL functionality test failed; EGL is required by some QPA plugins to manage cont
        |  You might need to modify the include and library search paths by editing QMAKE_INCDIR

    x11 in DISTRO_FEATURES also produced the following error
        error: 'QAccessible' has not been declared
        |              } else if (QStyleHelper::isInstanceOf(groupBox->styleObject,
        QAccessible::Grouping)) {
        |                                                       ^
        |Makefile:53048: recipe for target '.obj/qgtkstyle.o' failed

    This bbappend definitively fix these bug

Signed-off-by: John Madieu <j.madieu@expemb.com>
---
 qt5-layer/recipes-qt/qt5/qtbase_%.bbappend | 33 ++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 qt5-layer/recipes-qt/qt5/qtbase_%.bbappend

diff --git a/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend b/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
new file mode 100644
index 0000000..f61cd1d
--- /dev/null
+++ b/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
@@ -0,0 +1,33 @@
+
+# Raspberrypi only need gles2
+PACKAGECONFIG_GL = "gles2"
+
+QT_CONFIG_FLAGS_append = "${@base_contains('DISTRO_FEATURES', 'x11', ' -accessibility ', '', d)}"
+do_configure_prepend_rpi() {
+
+	sed -i 's!load(qt_config)!!' ${S}/mkspecs/linux-oe-g++/qmake.conf
+    if ! grep -q '^EGLFS_' ${S}/mkspecs/linux-oe-g++/qmake.conf; then
+        cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <<EOF
+QMAKE_INCDIR_EGL = \$\$[QT_SYSROOT]${includedir}/interface/vcos/pthreads \$\$[QT_SYSROOT]${includedir}/interface/vmcs_host/linux
+QMAKE_INCDIR_OPENGL_ES2 = \$\${QMAKE_INCDIR_EGL}
+QMAKE_LIBS_EGL = -lEGL -lGLESv2
+EOF
+
+        if [ -d ${S}/src/plugins/platforms/eglfs/deviceintegration/eglfs_brcm ]; then
+            cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <<EOF
+EGLFS_DEVICE_INTEGRATION = eglfs_brcm
+EOF
+        else
+            cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <<EOF
+EGLFS_PLATFORM_HOOKS_LIBS = -lbcm_host
+EGLFS_PLATFORM_HOOKS_SOURCES = \$\$PWD/../devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp
+EOF
+        fi
+    fi
+    cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <<EOF
+
+
+load(qt_config)
+
+EOF
+}
-- 
1.9.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [meta-qt5][meta-raspberrypi]: QMAKE_LIBS_EGL not properly set
@ 2016-02-02 16:50 GUEYTAT Julien
  2016-02-02 17:03 ` [meta-raspberrypi][PATCH v3 1/2] qt5: fixed raspberrypi support John Madieu
  0 siblings, 1 reply; 5+ messages in thread
From: GUEYTAT Julien @ 2016-02-02 16:50 UTC (permalink / raw)
  To: 'yocto@yoctoproject.org'


[-- Attachment #1.1: Type: text/plain, Size: 975 bytes --]

Hi,

It seems that there are some stiff missing between meta-qt5 or meta-raspberrypi.
When we set the option gles... to qtbase we don't get the QMAKE_LIBS_EGL set properly.
We can compare a working set of variables in the qt mkspecs directory of qt.
There is one dedicated file for the RaspberryPi2. May be one also for RaspberryPi.
Anyway!
How could we set those *_EGL variables properly? And... If they are properly set, will qtbase will take them into account?

I will be happy to propose a patch but I need to get more precision first.
Thanks in advance,



Julien GUEYTAT
Ingénieur Informatique
[Logo CDS SOFT]
1027, avenue du Docteur Julien Lefebre BP27
06271 Villeneuve-Loubet Cedex
Fixe :  +33 (0) 492 024 545
Mob :  +33(0) 617 980 383
Fax :    +33(0) 492 024 546
Email : j.gueytat@cdssoft.studiel.fr<mailto:j.gueytat@cdssoft.studiel.fr>
www : www.studiel.fr<http://www.studiel.fr/>
P Pensez Environnement, imprimez seulement si nécessaire


[-- Attachment #1.2: Type: text/html, Size: 5637 bytes --]

[-- Attachment #2: image001.png --]
[-- Type: image/png, Size: 7552 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread
* Re: [meta-raspberrypi][PATCH v2 1/2] qt5: fixed raspberrypi support
@ 2016-01-12  1:55 john madieu
  2016-01-12 14:22 ` [meta-raspberrypi][PATCH v3 " John Madieu
  0 siblings, 1 reply; 5+ messages in thread
From: john madieu @ 2016-01-12  1:55 UTC (permalink / raw)
  To: Andrei Gherzan; +Cc: Yocto Project

On Mon, Jan 11, 2016 at 9:34 PM, Andrei Gherzan <andrei@gherzan.ro> wrote:
> On Mon, Jan 11, 2016 at 04:46:10PM +0100, John Madieu wrote:
>> Because EGL properties were not defined properly, we always had the following error
>>     make: *** [egl] Error 1
>>     | EGL disabled.
>>     |  The EGL functionality test failed; EGL is required by some QPA plugins to manage cont
>>     |  You might need to modify the include and library search paths by editing QMAKE_INCDIR
>>
>> This bbappend definitively fix the bug
>>
>> Signed-off-by: John Madieu <j.madieu@expemb.com>
>> ---
>>  qt5-layer/recipes-qt/qt5/qtbase_%.bbappend | 29 +++++++++++++++++++++++++++++
>>  1 file changed, 29 insertions(+)
>>  create mode 100644 qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
>>
>> diff --git a/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend b/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
>> new file mode 100644
>> index 0000000..8b77bfa
>> --- /dev/null
>> +++ b/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
>> @@ -0,0 +1,29 @@
>> +
>> +do_configure_prepend_rpi() {
>> +
>> +     sed -i 's!load(qt_config)!!' ${S}/mkspecs/linux-oe-g++/qmake.conf
>> +    if ! grep -q '^EGLFS_' ${S}/mkspecs/linux-oe-g++/qmake.conf; then
>> +        cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <<EOF
>> +QMAKE_INCDIR_EGL = \$\$[QT_SYSROOT]${includedir}/interface/vcos/pthreads \$\$[QT_SYSROOT]${includedir}/interface/vmcs_host/linux
>> +QMAKE_INCDIR_OPENGL_ES2 = \$\${QMAKE_INCDIR_EGL}
>> +QMAKE_LIBS_EGL = -lEGL -lGLESv2
>> +EOF
>> +
>> +        if [ -d ${S}/src/plugins/platforms/eglfs/deviceintegration/eglfs_brcm ]; then
>> +            cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <<EOF
>> +EGLFS_DEVICE_INTEGRATION = eglfs_brcm
>> +EOF
>> +        else
>> +            cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <<EOF
>> +EGLFS_PLATFORM_HOOKS_LIBS = -lbcm_host
>> +EGLFS_PLATFORM_HOOKS_SOURCES = \$\$PWD/../devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp
>> +EOF
>> +        fi
>> +    fi
>> +    cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <<EOF
>> +
>> +
>> +load(qt_config)
>> +
>> +EOF
>> +}
>

> qtbase fails at compile time:
Sorry for that

> | compiling .moc/moc_qeglplatformcursor_p.cpp
> |
> /home/andrei/work/yocto/build-rpi-master/tmp/work/cortexa7hf-vfp-vfpv4-neon-poky-linux-gnueabi/qtbase/5.5.1+gitAUTOINC+5afc431323-r0/git/src/widgets/styles/qgtkstyle.cpp:
> In member function 'virtual QRect
> QGtkStyle::subControlRect(QStyle::ComplexControl, const QStyleOptionComplex*,
> QStyle::SubControl, const QWidget*) const':
> |
> /home/andrei/work/yocto/build-rpi-master/tmp/work/cortexa7hf-vfp-vfpv4-neon-poky-linux-gnueabi/qtbase/5.5.1+gitAUTOINC+5afc431323-r0/git/src/widgets/styles/qgtkstyle.cpp:3636:24:
> error: 'isInstanceOf' is not a member of 'QStyleHelper'
> |              } else if (QStyleHelper::isInstanceOf(groupBox->styleObject,
> QAccessible::Grouping)) {
> |                         ^
> |
> /home/andrei/work/yocto/build-rpi-master/tmp/work/cortexa7hf-vfp-vfpv4-neon-poky-linux-gnueabi/qtbase/5.5.1+gitAUTOINC+5afc431323-r0/git/src/widgets/styles/qgtkstyle.cpp:3636:74:
> error: 'QAccessible' has not been declared
> |              } else if (QStyleHelper::isInstanceOf(groupBox->styleObject,
> QAccessible::Grouping)) {
> |                                                                           ^
> | Makefile:53048: recipe for target '.obj/qgtkstyle.o' failed
> | make[2]: *** [.obj/qgtkstyle.o] Error 1
> | make[2]: *** Waiting for unfinished jobs....
>
>
> How is this supposed to be tested?

I finaly reproduced the same error.

I did not have it because during my compilation, I removed "x11"
from DISTRO_FEATURES. If you look at qtbase_git.bb, you can see that
some of PACKAGECONFIG_X11 features (gtkstyle) depend on "-accessibility" flag.

so I added that flags according to the presence or not of x11 in DISTRO_FEATURES
I thus made several test with or without x11, in DISTRO_FEATURES .
All succeeded.

The last patch will be plug and play. I'll tag it v3 and everything
should works fine now.
But before, I still have some test to do (with mixed distro_features).
I will pay more attention this time.


> --
> Andrei Gherzan
-- 
John MADIEU | j.madieu@expemb.com |


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-02-02 17:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-18 14:13 [meta-raspberrypi][PATCH v3 1/2] qt5: fixed raspberrypi support John Madieu
2016-01-18 14:13 ` [meta-raspberrypi][PATCH v3 2/2] layer.conf: avoid to force users to add the qt5 layer because of qtbase bbappend John Madieu
  -- strict thread matches above, loose matches on Subject: below --
2016-02-02 17:04 [meta-raspberrypi][PATCH v3 1/2] qt5: fixed raspberrypi support John Madieu
2016-02-02 17:04 ` [meta-raspberrypi][PATCH v3 2/2] layer.conf: avoid to force users to add the qt5 layer because of qtbase bbappend John Madieu
2016-02-02 16:50 [meta-qt5][meta-raspberrypi]: QMAKE_LIBS_EGL not properly set GUEYTAT Julien
2016-02-02 17:03 ` [meta-raspberrypi][PATCH v3 1/2] qt5: fixed raspberrypi support John Madieu
2016-02-02 17:03   ` [meta-raspberrypi][PATCH v3 2/2] layer.conf: avoid to force users to add the qt5 layer because of qtbase bbappend John Madieu
2016-01-12  1:55 [meta-raspberrypi][PATCH v2 1/2] qt5: fixed raspberrypi support john madieu
2016-01-12 14:22 ` [meta-raspberrypi][PATCH v3 " John Madieu
2016-01-12 14:22   ` [meta-raspberrypi][PATCH v3 2/2] layer.conf: avoid to force users to add the qt5 layer because of qtbase bbappend John Madieu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.