Building QtWebKit for Blackberry

From Qt Wiki
Jump to navigation Jump to search

Setting up the environment

See Blackberry for instructions. Furthermore see Building Qt5 for Blackberry as a prerequisite.

Getting the source

We will clone the git repository of webkit from code.qt.io. Note that this takes a very long time and includes lots of test data, leading to a whopping 5GB disk space requirement for the checkout.

$ git clone git://code.qt.io/webkit/webkit.git

Building

There are two ways of building QtWebKit:

Usage/Testing

The suggested way is to build QtWebKit just like any other Qt5 module via QMake. See Building Qt5 for Blackberry on how to call QMake.

Development

There is a second process of building QtWebKit which differs from the other Qt5 modules. This is the suggested way to use when you want to develop QtWebKit. you still have to have configured your environment to use the BBNDK as described in Blackberry! Especially ensure that the QMake binary in your PATH is the Blackberry version.

$ cd webkit
$ # here <N> is the number of parallel make jobs to run. This is often set to <No. of CPU cores + 1>. adapt this
$ perl Tools/Scripts/webkit-build qt install-libs="$(qmake -query QT_INSTALL_PREFIX)" makeargs="-j<N>"

This will compile QtWebKit for QNX in a folder called WebKitBuild/Release in your webkit checkout.

After this process, you should have a Qt5 QtWebKit located in your Qt install prefix (i.e. $HOME/development/qnx/qt5 or in C:stall, depending of your operating system- if you followed the other howtos).

See also

Known Issues

WebKit1/C++

QtWebKit applications using the WebKit1/C++ API are a bad fit for touch devices like the PlayBook. To simulate mouse events out of touch events, call the following on your QWebView:

webView->setAttribute(Qt::WA_AcceptTouchEvents, false);

If you do not do this, touch events are accpted and delegated to the JavaScript, but you will not be able to interact with the WebView, meaning: You cannot scroll, click links or do anything with it.

WebKit1/QML

Using QtWebKit with the old QtQuick1 QML API is currently broken. Eventually, this code will be moved from QtWebKit to the QtQuick1 module and reactivated.