[PyQt] Cross compiling PyQt in OpenEmbedded with configure-ng.py

Phil Thompson phil at riverbankcomputing.com
Fri Nov 21 15:40:17 GMT 2014


On 21/11/2014 3:29 pm, Philip Balister wrote:
> On 11/21/2014 09:48 AM, Phil Thompson wrote:
>> On 21/11/2014 2:42 pm, Philip Balister wrote:
>>> I'm trying to update the OE build of PyQt to 4.11.3 using the
>>> configure-ng.py method.
>>> 
>>> The build fails with:
>>> 
>>> |
>>> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQWidget.cpp:
>>> 
>>> In function 'PyObject* 
>>> meth_QWidget_setAccessibleDescription(PyObject*,
>>> PyObject*)':
>>> |
>>> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQWidget.cpp:3385:21:
>>> 
>>> error: 'class QWidget' has no member named 'setAccessibleDescription'
>>> |              sipCpp->setAccessibleDescription(*a0);
>>> |                      ^
>>> | make[1]: *** [sipQtGuiQWidget.o] Error 1
>>> | make[1]: Leaving directory
>>> `/home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui'
>>> 
>>> | make: *** [sub-QtGui-make_default-ordered] Error 2
>>> | ERROR: oe_runmake failed
>>> | WARNING:
>>> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/temp/run.do_compile.1836:1
>>> 
>>> exit 1 from
>>> |   exit 1
>>> 
>>> 
>>> Here is the config file I made:
>>> 
>>> [balister at thuvia build]$ cat
>>> tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/pyqt.cfg
>>> 
>>> 
>>> py_platform = linux
>>> py_inc_dir = %(sysroot)//usr/include/python%(py_major).%(py_minor)
>>> py_pylib_dir = %(sysroot)//usr/lib/python%(py_major).%(py_minor)
>>> py_pylib_lib = python%(py_major).%(py_minor)mu
>>> pyqt_module_dir = %(sysroot)//usr/lib/python%(py_major)/dist-packages
>>> pyqt_bin_dir = %(sysroot)//usr/bin
>>> pyqt_sip_dir = %(sysroot)//usr/share/sip/PyQt4
>>> pyuic_interpreter = /usr/bin/python%(py_major).%(py_minor)
>>> pyqt_disabled_features = PyQt_Desktop_OpenGL PyQt_qreal_double
>>> qt_shared = True
>>> [Qt 4.8]
>>> pyqt_modules = QtCore QtGui QtDeclarative QtNetwork QtSvg QtWebKit
>>> 
>>> Configure is called with;
>>> 
>>>  python configure-ng.py --verbose --qmake
>>> ${STAGING_BINDIR_NATIVE}/qmake2 --configuration pyqt.cfg --sysroot
>>> ${STAGING_DIR_HOST}
>>> 
>>> Do you have any suggestions for correcting this?
>> 
>> Add PyQt_Accessibilty to pyqt_disabled_features.
> 
> You meant PyQt_Accessibility :) Is there a good place to read about
> these features and how they interact?

The different features are defined in QtCoremod.sip. You need to disable 
features that your Qt build doesn't support.

> This gets me to:
> 
> | arm-oe-linux-gnueabi-g++  -march=armv7-a -mthumb-interwork
> -mfloat-abi=hard -mfpu=neon
> --sysroot=/home/balister/src/oe-core/build/tmp-glibc/sysroots/ettus-e300
> -c -pipe  -O2 -pipe -g -feliminate-unused-debug-types
> -fvisibility-inlines-hidden -fno-exceptions -O2 -Wall -W -D_REENTRANT
> -fPIC -DSIP_PROTECTED_IS_PUBLIC -Dprotected=public -DQT_NO_DEBUG
> -DQT_PLUGIN -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
> -I/home/balister/src/oe-core/build/tmp-glibc/sysroots/ettus-e300/usr/share/qt4/mkspecs/linux-g++
> -I.
> -I/home/balister/src/oe-core/build/tmp-glibc/sysroots/ettus-e300/usr/include/qt4/QtCore
> -I/home/balister/src/oe-core/build/tmp-glibc/sysroots/ettus-e300/usr/include/qt4/QtGui
> -I/home/balister/src/oe-core/build/tmp-glibc/sysroots/ettus-e300/usr/include/qt4
> -I.
> -I/home/balister/src/oe-core/build/tmp-glibc/sysroots/ettus-e300/usr/include/python2.7
> -I../qpy/QtGui -I. -o sipQtGuiQApplication.o sipQtGuiQApplication.cpp
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:
> In member function 'void sipQApplication::saveState(QSessionManager&)':
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:377:9:
> error: 'saveState' is not a member of 'QApplication'
> |          QApplication::saveState(a0);
> |          ^
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:
> In member function 'void 
> sipQApplication::commitData(QSessionManager&)':
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:395:9:
> error: 'commitData' is not a member of 'QApplication'
> |          QApplication::commitData(a0);
> |          ^
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:
> In function 'PyObject* meth_QApplication_isSessionRestored(PyObject*,
> PyObject*)':
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:2027:30:
> error: 'const class QApplication' has no member named 
> 'isSessionRestored'
> |              sipRes = sipCpp->isSessionRestored();
> |                               ^
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:
> In function 'PyObject* meth_QApplication_sessionId(PyObject*, 
> PyObject*)':
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:2056:42:
> error: 'const class QApplication' has no member named 'sessionId'
> |              sipRes = new QString(sipCpp->sessionId());
> |                                           ^
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:
> In function 'PyObject* meth_QApplication_sessionKey(PyObject*, 
> PyObject*)':
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:2085:42:
> error: 'const class QApplication' has no member named 'sessionKey'
> |              sipRes = new QString(sipCpp->sessionKey());
> |                                           ^
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:
> In function 'PyObject* meth_QApplication_commitData(PyObject*, 
> PyObject*)':
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:2114:52:
> error: 'class QApplication' has no member named 'commitData'
> |              (sipSelfWasArg ? sipCpp->QApplication::commitData(*a0) :
> sipCpp->commitData(*a0));
> |                                                     ^
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:2114:78:
> error: 'class QApplication' has no member named 'commitData'
> |              (sipSelfWasArg ? sipCpp->QApplication::commitData(*a0) :
> sipCpp->commitData(*a0));
> |
>         ^
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:
> In function 'PyObject* meth_QApplication_saveState(PyObject*, 
> PyObject*)':
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:2144:52:
> error: 'class QApplication' has no member named 'saveState'
> |              (sipSelfWasArg ? sipCpp->QApplication::saveState(*a0) :
> sipCpp->saveState(*a0));
> |                                                     ^
> |
> /home/balister/src/oe-core/build/tmp-glibc/work/armv7ahf-vfp-neon-oe-linux-gnueabi/python-pyqt/4.11.3-r0/PyQt-x11-gpl-4.11.3/QtGui/sipQtGuiQApplication.cpp:2144:77:
> error: 'class QApplication' has no member named 'saveState'
> |              (sipSelfWasArg ? sipCpp->QApplication::saveState(*a0) :
> sipCpp->saveState(*a0));
> |
>        ^
> | make[1]: *** [sipQtGuiQApplication.o] Error 1

I think this is PyQt_SessionManager.

Phil


More information about the PyQt mailing list