wiki:BuildingQt5OnHarmattan

Version 10 (modified by jocelyn.turcotte@nokia.com, 10 years ago) (diff)

--

Building the Qt port on MeeGo 1.2 Harmattan with Qt 5

See also Building QtWebKit on Linux

This page as well as the attempt of achieving this build is work in progress. It's also our TODO list to get there.

Goal

The goal is to get WebKit trunk running on the N9/N950, to a state where it can be developed sensibly.

Assumptions

  • Working Scratchbox setup (url??)
  • Running N950/N9 with root and scratchbox home directory mounted via NFS
  • Present clones of qtbase, qtsvg, qtxmlpatterns and qtdeclarative

Build Instructions

  • Install dependencies: (TODO: test with clean environment!)
    • Basic build deps, shared between Qt 5 and 4: fakeroot apt-get build-dep qt4-x11
    • Dependencies needed for XCB back-end: fakeroot apt-get install libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm1 libxcb-icccm1-dev libxcb-sync0 libxcb-sync0-dev libxcb-xfixes0-dev
    • Ensure the render packages are gone: fakeroot apt-get remove --purge libxcb-render-util0 libxcb-render-util0-dev
  • Apply Jocelyn's xinput2 patch to qtbase: http://paste.ubuntu.com/705342/
  • Configure & build qtbase: cd qtbase && configure -nokia-developer -fast followed by make
    • Append the following arguments to configure to prevent qmake from running through qemu: -platform unsupported/linux-host-g++ -xplatform linux-g++-maemo
      I didn't try a full build yet, only a post-configure. Please merge those with the rest of the command line above once somebody confirmed that you can do a full Qt build with them.
  • Ensure your PATH is up-to-date: cd qtbase && export PATH=$PWD/bin:$PATH
  • Build QtSvg, QtXmlPatterns and QtDeclarative (in that order): cd module && qmake -r && make
  • ...
  • perl Tools/Scripts/build-webkit -2 --qt --release --no-3d-canvas

Current Issues / TODO

If you find any issues that you're working on, just add them below :)

  • Qt 5 TODOs:
    • Touch Input (xi2) support in Qt 5 for Harmattan (Jocelyn)
    • Input method support in Qt 5 for Harmattan
  • Most obvious WebKit issues:
    • Text is funny mis-rendered in MiniBrowser -touch. (Suspect Qt 5 scaled-text-with-raster-engine bug)
    • MiniBrowser doesn't show any web content on Harmattan (could be QWindow wrapper problem, could be non-threaded scene graph rendering issue)
  • Rewrite MiniBrowser in QML
  • Figure out "kinetic" scrolling (pending QScroller decision)

Done

  • Qt 5 TODOs:
    • No interaction with page possible when launching MiniBrowser with -touch. Due to broken touch mocking. (Simon)