wiki:BuildingQtOnSymbian

Version 10 (modified by Laszlo Gombos, 14 years ago) (diff)

CONFIG-=def_files should be used for trunk builds

Note that these instructions are preliminary and work in progress...

These instructions assume that you have a Symbian development set up and that you have the source code checked out.

Requirements

  • QtWebKit is best built with Sbsv2 (aka Raptor). This setup assumes the availability of it.
  • Please install the Bison, Flex, ActiveState Perl etc. tools from GnuWin32. See the instructions for building on Windows where to get these.
  • Make sure that the GnuWin32 tools are installed in a path without spaces, i.e. not Program Files\GnuWin32 but for example c:\GnuWin32.
  • You need to have \GnuWin32\bin and \Perl64\bin (if that's where your Perl is installed) in your %PATH% before the S60 SDK tools path.
  • In addition you need to have a native Windows compiler in your PATH, i.e. MSVC or MingW.
  • You can download Raptor from here: http://developer.symbian.org/wiki/index.php/Symbian_Build_System_v2

Building Qt

If you haven't done so already, try these instructions for a release build:

  • Clone Qt: git clone git://gitorious.org/qt/qt.git qt-4.6
  • Set up the 4.6 Branch:
    • cd qt-4.6
    • git checkout -b 4.6 origin/4.6
    • git branch -D master
  • Configure: configure -xplatform symbian-sbsv2
  • Build for arm with 8 cores: sbs -c armv6_urel -j8
  • Get a cup of tea/coffee.
  • Patch capabilities and generate the sis package:
    cd src/s60installs
    perl ..\..\bin\patch_capabilities.pl Qt_template.pkg release-armv6
    make sis
  • Put the qt-4.6\bin directory in your %PATH%.

Building WebKit for release

  • Build the generated files and set up the build system:
    • cd where-your-webkit-sources-are
    • perl WebKitTools\Scripts\build-webkit --qt --symbian
      • If you're building the trunk where the export def file for Symbian is not always up-to-date you need to pass CONFIG-=def_files as an argument to build-webkit as well
    • cd WebCore
    • Build for hardware: sbs -c armv6_urel -j8
    • Patch capabilities: perl %QTDIR%\bin\patch_capabilities.pl QtWebKit_template.pkg release-armv6
    • Create the sis file: make sis
    • Install it on the phone: "C:\Program Files\Nokia\Nokia PC Suite 7\ApplicationInstaller.exe" %CD%\qtwebkit.sis
      You can also Drag'n'drop the resulting .sis file onto Nokia PC Suite to install it.
  • Note that as of May-2010 (from r58756) you should be able to build not only from WebCore but from "top level". Building from top will also build QtLauncher, autotests and DumprenderTree for Symbian.

Building WebKit for debug

  • Almost the same as above:
    • You need to have Qt built for debug as well
    • cd where-your-webkit-sources-are
    • perl WebKitTools\Scripts\build-webkit --qt --symbian --debug
    • Run the script debug-webkit-patch-sbsv2.py from git://gitorious.org/qtwebkit/tools.git. It was tested to work at least with Python 2.6
      This is necessary because the quantity of debug information in WebKit makes armlink fail. This script works around the problem.
    • sbs -c armv6_udeb -j8
    • perl %QTDIR%\bin\patch_capabilities.pl QtWebKit_template.pkg debug-armv6
    • make sis

Running a Browser on device/emulator

If you have problems starting your favourite browser (Anomaly/QtLauncher) on Symbian HW, here are some choices to remember:

  • Use QtLauncher that ships inside Webkit.org trunk to build your test browser. You don't have to worry about exports and .DEF files in this case.
  • To use Anomaly from $QTSRC/demos/embedded/, you may have to update the .DEF files known to the Qt installation to make Anomaly work OK.
    To do so , recompile QtWebkit.dll by passing an additional argument to the build-webkit script and re-deploy to device.
    --qmake-arg="CONFIG+=def_files"