Compiling Qt5.3.0-beta1 on Yocto

Document created by Michael Banditt on Apr 18, 2014Last modified by Michael Banditt on Sep 8, 2015
Version 3Show Document
  • View in full screen mode

Here are my experiences for compiling Qt5.3.0-beta1 on Yocto. Special thanks to Martin Jansa, the maintainer of the meta-qt5 layer and his help on this. My original procedure was based on this tutorial: Building Qt5 using yocto on Wandboard - Wandboard Wiki

 

Reason:

Qt5.3 contains a nice new plugin that allows the use of gstreamer output for textures without the CPU intensive step of copying them (Gerrit Code Review). This allows to play even full HD videos and apply all the power of Qt5 (e.g. shaders) to them.

 

Steps:

diff --git a/recipes-qt/qt5/qt5.inc b/recipes-qt/qt5/qt5.inc

index dfc1c76..a2f9a73 100644

--- a/recipes-qt/qt5/qt5.inc

+++ b/recipes-qt/qt5/qt5.inc

@@ -54,6 +54,7 @@ FILES_${PN}-tools-dbg = " \

"

FILES_${PN}-plugins-dbg = " \

     ${OE_QMAKE_PATH_PLUGINS}/*/.debug/* \

+    ${OE_QMAKE_PATH_PLUGINS}/*/*/.debug/* \

"

 

# extra packages

@@ -98,6 +99,7 @@ FILES_${PN}-tools = " \

"

FILES_${PN}-plugins = " \

     ${OE_QMAKE_PATH_PLUGINS}/*/*${SOLIBSDEV} \

+    ${OE_QMAKE_PATH_PLUGINS}/*/*/*${SOLIBSDEV} \

"

FILES_${PN}-mkspecs = "\

     ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \

 

  • Define your machine: export MACHINE=xxx (replace with your board)
  • Setup build environment: cd .. ; . setup-environment build
  • edit your local layer conf ("conf/bblayers.conf") and add the following two lines:

  ${BSPDIR}/sources/meta-openembedded/meta-ruby \

  ${BSPDIR}/sources/meta-qt5 \

 

  • edit your local.conf and add the following lines:

DISTRO_FEATURES_remove = "x11 wayland"

IMAGE_INSTALL_append = " \

    firmware-imx-vpu-imx6q \

    firmware-imx-vpu-imx6d \

"

IMAGE_INSTALL_append = " \

    cpufrequtils \

    nano \

    packagegroup-fsl-gstreamer \

    packagegroup-fsl-tools-testapps \

    packagegroup-fsl-tools-benchmark \

    gstreamer \

    gst-plugins-base-app \

    gst-plugins-base \

    gst-plugins-good \

    gst-plugins-good-rtsp \

    gst-plugins-good-udp \

    gst-plugins-good-rtpmanager \

    gst-plugins-good-rtp \

    gst-plugins-good-video4linux2 \

    qtbase-fonts \

    qtbase-plugins \

    qtbase-tools \

    qtbase-examples \

    qtdeclarative \

    qtdeclarative-plugins \

    qtdeclarative-tools \

    qtdeclarative-examples \

    qtdeclarative-qmlplugins \

    qtmultimedia \

    qtmultimedia-plugins \

    qtmultimedia-examples \

    qtmultimedia-qmlplugins \

    qtsvg \

    qtsvg-plugins \

    qtsensors \

    qtimageformats-plugins \

    qtsystems \

    qtsystems-tools \

    qtsystems-examples \

    qtsystems-qmlplugins \

    qtscript \

    qt3d \

    qt3d-examples \

    qt3d-qmlplugins \

    qt3d-tools \

    qtwebkit \

    qtwebkit-examples-examples \

    qtwebkit-qmlplugins \

    cinematicexperience \

    "

 

PACKAGECONFIG_append_pn-qtmultimedia = " gstreamer010"

 

QT5_VERSION = "5.2.1+5.3.0-beta1+git%"

PREFERRED_VERSION_qtbase-native = "${QT5_VERSION}"

PREFERRED_VERSION_qtbase = "${QT5_VERSION}"

PREFERRED_VERSION_qtdeclarative = "${QT5_VERSION}"

PREFERRED_VERSION_qtjsbackend = "${QT5_VERSION}"

PREFERRED_VERSION_qtjsbackend-native = "${QT5_VERSION}"

PREFERRED_VERSION_qtgraphicaleffects = "${QT5_VERSION}"

PREFERRED_VERSION_qtimageformats = "${QT5_VERSION}"

PREFERRED_VERSION_qtmultimedia = "${QT5_VERSION}"

PREFERRED_VERSION_qtquick1 = "${QT5_VERSION}"

PREFERRED_VERSION_qtquickcontrols = "${QT5_VERSION}"

PREFERRED_VERSION_qtsensors = "${QT5_VERSION}"

PREFERRED_VERSION_qtserialport = "${QT5_VERSION}"

PREFERRED_VERSION_qtscript = "${QT5_VERSION}"

PREFERRED_VERSION_qtsvg = "${QT5_VERSION}"

PREFERRED_VERSION_qttools-native = "${QT5_VERSION}"

PREFERRED_VERSION_qtwebkit = "${QT5_VERSION}"

PREFERRED_VERSION_qtwebkit-examples = "${QT5_VERSION}"

PREFERRED_VERSION_qtxmlpatterns = "${QT5_VERSION}"

  • build an image: bitbake core-image-minimal

 

This image will build QT5.3 for framebuffer. If you want to use it with X11, then adapt according to this tutorial: Integrate Qt5 into yocto sato image on Wandboard - Wandboard Wiki

 

Please tell me, if I missed something. I wrote this as I remembered the steps.

Attachments

    Outcomes