Qt-contributors-summit-2012-Qt-in-Embedded: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
Qt Device/Embedded board support vision:


* Qt needs to work out of the box for embedded boards without having to patch Qt and mkspecs over and over again
* Provide an optimal build for the device
* Focus is on cross-compilation and not on on-target compilation
Note: Most of the stuff below is already in qtbase. -device is currently marked as ‘experimental’
configure
* -device <device> specifies the device.
* Together with -sysroot and -device-option <span class="caps">CROSS</span>_COMPILE to specify the compiler, you will have Qt for your board!
** For example, for the raspberry-pi, all one needs to do is:<br />
* There is mechanism to pass arbitrary device specific options (requires for most <span class="caps">BSP</span>s)
** Also allows us to use the same mkspec to support multiple distros (hardfp/softfp)
* Currently supported boards/devices
** ST7540, ST7108, Trident Shiner (PNX8473), Broadcom 97425, N9, beagleboard, snowball
** More information here: [[:Category:Devices|http://wiki.qt.io/Category:Devices]]
* passing options to configure like -no-neon
** https://codereview.qt.io/#change,27782
eglfs:
* No more depends on widgets, uses raster engine to paint widgets instead of opengl engine
* Integrated the build into configure
* hooks for board specific initialization
** screen depth, format, gl caps
** does not pollute board specific stuff into eglfs
* even has a xlib hook, so eglfs can be tested on the desktop just like wayland
* input
** eglfs now depends on evdev. Future task is to make it compile when evdev is absent but we are yet to see such a device (qnx?)
** can now be without udev, we have a static discovery
** moved to platformsupport
** eglfs loads input statically avoiding obscure args like -plugin EvdevKeyboard
** synchronized position with multiple cursors
* minimalegl is the old eglfs
* cursor support
** by default, you get a gl “composed” cursor
** supports hotspots
** hw accel on the pi, the cursor is a separate layer
** it’s now CI (compile) tested
* allows creation of multiple windows and supports the surface format requested by the user
** required for context menus
** qmlscene —transparent allows one to create a transparent toplevel
** on the pi, each window is a layer. poor man’s wayland
* Jorgen suggested moving large parts of code to platformsupport and move device stuff to separate repo
** Will be investigated post 5.0
directfb:
* similar hooks design as eglfs
* integrated into configure
* supports IDirectFBGL and DirectFB+EGL
* holger maintains directfb these days
pkg-config changes:
* no more a second class citizen for embedded targets unlike qt4
* -force-pkg-config was used only for xcompile builds and used to just check for environment variables.
* Checks <span class="caps">PKG</span>_CONFIG_LIBDIR instead of <span class="caps">PKG</span>_CONFIG_PATH since the latter pulls in host paths. Checks <span class="caps">PKG</span>_CONFIG_SYSROOT_DIR
* <del>(no</del>)pkg-config works for all builds, default ‘auto’
* pkg-config env variables are now stored as part of qdevice.pri (“session”)
configure:
* -sysroot now being actively tested and it also documented
* Saves it’s output into config.summary
* Fixed <span class="caps">QPA</span> plugin detection
** -qpa foo sets the default qpa
* Still have the problem of runtime of autodetection
** Decided that this was unnecessary
What’s coming
* Hardware image decoding for the pi (based on openmax IL – girish)
* Layer based video rendering for the pi (based on openmax IL – johannes)
* qdoc documentation
* passing options to configure like -no-neon
** https://codereview.qt.io/#change,27782
* Host tools when xcompiling
* Support for host compilation with -device
* Out of the box serial port configuration with QSerialPort
What’s missing from Qt4/Embedded support
* linuxfb needs to be resurrected
* openvg backend
* wayland will be suggested for multiprocess support, eglfs for single process

Revision as of 13:55, 24 February 2015