Qt-contributors-summit-2012-Qt-in-Embedded: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (Categorize) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{Cleanup | reason=Auto-imported from ExpressionEngine.}} | |||
[[Category:QtCS2012]] | |||
Qt Device/Embedded board support vision: | Qt Device/Embedded board support vision: | ||
Line 5: | Line 7: | ||
* Focus is on cross-compilation and not on on-target compilation | * 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 | Note: Most of the stuff below is already in qtbase. -device is currently marked as 'experimental' | ||
configure | configure | ||
* -device | * -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! | * 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 /> | ** For example, for the raspberry-pi, all one needs to do is:<br /><div class="cpp-qt geshi"> | ||
**# <div class="de1"> configure <span class="sy0">-</span>device pi <span class="sy0">-</span>sysroot <span class="sy0">-</span>device<span class="sy0">-</span>option CROSS_COMPILE<span class="sy0">=/</span>xgcc<span class="sy0">/</span>prefix</div></div> | |||
* There is mechanism to pass arbitrary device specific options (requires for most <span class="caps">BSP</span>s) | * 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) | ** Also allows us to use the same mkspec to support multiple distros (hardfp/softfp) | ||
Line 36: | Line 39: | ||
* minimalegl is the old eglfs | * minimalegl is the old eglfs | ||
* cursor support | * cursor support | ||
** by default, you get a gl | ** by default, you get a gl "composed" cursor | ||
** supports hotspots | ** supports hotspots | ||
** hw accel on the pi, the cursor is a separate layer | ** 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 | * allows creation of multiple windows and supports the surface format requested by the user | ||
** required for context menus | ** required for context menus | ||
** qmlscene —transparent allows one to create a transparent toplevel | ** qmlscene —transparent allows one to create a transparent toplevel | ||
** on the pi, each window is a layer. poor | ** 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 | * Jorgen suggested moving large parts of code to platformsupport and move device stuff to separate repo | ||
** Will be investigated post 5.0 | ** Will be investigated post 5.0 | ||
Line 59: | Line 62: | ||
* -force-pkg-config was used only for xcompile builds and used to just check for environment variables. | * -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 | * 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 | * <del>(no</del>)pkg-config works for all builds, default 'auto' | ||
* pkg-config env variables are now stored as part of qdevice.pri ( | * pkg-config env variables are now stored as part of qdevice.pri ("session") | ||
configure: | configure: | ||
* -sysroot now being actively tested and it also documented | * -sysroot now being actively tested and it also documented | ||
* Saves | * Saves it's output into config.summary | ||
* Fixed <span class="caps">QPA</span> plugin detection | * Fixed <span class="caps">QPA</span> plugin detection | ||
** -qpa foo sets the default qpa | ** -qpa foo sets the default qpa | ||
Line 71: | Line 74: | ||
** Decided that this was unnecessary | ** Decided that this was unnecessary | ||
What's coming | |||
* Hardware image decoding for the pi (based on openmax IL – girish) | * Hardware image decoding for the pi (based on openmax IL – girish) | ||
Line 82: | Line 85: | ||
* Out of the box serial port configuration with QSerialPort | * Out of the box serial port configuration with QSerialPort | ||
What's missing from Qt4/Embedded support | |||
* linuxfb needs to be resurrected | * linuxfb needs to be resurrected | ||
* openvg backend | * openvg backend | ||
* wayland will be suggested for multiprocess support, eglfs for single process | * wayland will be suggested for multiprocess support, eglfs for single process |
Latest revision as of 17:10, 6 January 2017
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine. Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean. |
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 CROSS_COMPILE to specify the compiler, you will have Qt for your board!
- For example, for the raspberry-pi, all one needs to do is:
- configure -device pi -sysroot -device-option CROSS_COMPILE=/xgcc/prefix
- For example, for the raspberry-pi, all one needs to do is:
- There is mechanism to pass arbitrary device specific options (requires for most BSPs)
- 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: http://wiki.qt.io/Category:Devices
- passing options to configure like -no-neon
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 PKG_CONFIG_LIBDIR instead of PKG_CONFIG_PATH since the latter pulls in host paths. Checks PKG_CONFIG_SYSROOT_DIR
(no)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 QPA 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
- 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