wiki:BuildingQtOnSymbian

Version 30 (modified by siddharth.mathur@nokia.com, 8 years ago) (diff)

added note on GCC 4.4 with Qt SDK 1.1.

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

Requirements

  • QtWebKit is built with SBSv2 (aka Raptor) v2.16.0 or higher. Extract SBSv2 from Qt SDK 1.1 TP or newer.
  • RCVT 4.0 is _strongly_ recommended. Go to ARM.com for details. GCC (from Code Sourcery) supplied with Qt SDK 1.x is "self-supported" (use sbs -c arm.v5.urel.gcce4_4_1 in build instructions that follow) .
  • 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.

Building WebKit for release

  • Build the generated files and set up the build system:
    • cd where-your-webkit-sources-are
    • perl Tools\Scripts\build-webkit --qt --symbian --release
      • If you are a build master, manage .def export files, and/or want to freeze exports (i.e the .def files get processed), pass CONFIG+=def_files as an argument too
      • If you want faster rebuild times for your personal sandbox, pass --no-svg.
      • If you want even faster build times for a _very_ feature-stripped QtWebkit, use --minimal
      • To selectively turn on or off features, see features.pri
    • Build for hardware: sbs -c armv5_urel -j8 -b Source\bld.inf -b Tools\bld.inf
    • [OPTIONAL, only needed for self-signed SIS packages] Patch capabilities: perl %QTDIR%\bin\patch_capabilities.pl QtWebKit_template.pkg release-armv5
    • 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.

Building WebKit for debug

  • You MUST be using RVCT 4.0 and SBS 2.16.0 or higher. Also, you will need to pass --minimal or --no-svg to build-webkit.
  • First try compile + link with your normal (32-bit) RVCT linker : armlink.exe. If you see OOM errors, you should switch to 64-bit Windows OS for development and use a 64-bit RVCT 4.1 linker (armlink.exe) binary.
  • Steps for building:
    • You need to have Qt built for debug as well
    • cd where-your-webkit-sources-are
    • perl Tools\Scripts\build-webkit --qt --symbian --minimal --debug
    • sbs -c armv5_udeb.slimdebug -j8 -b Source\bld.inf -b Tools\bld.inf
    • [OPTIONAL, only needed for self-signed SIS packages]perl %QTDIR%\bin\patch_capabilities.pl QtWebKit_template.pkg debug-armv5
    • make sis

Using RVCT4.0

  • RVCT4.0 is strongly recommended for trunk work on Symbian.
  • First set up your RVCT4.0 installation by obtaining the binaries and setting up environment variables per ARM's instructions (Nokians may use SymSEE to activate it)
  • If using with Symbian3/TB9.2 SDKs, you may have to compile the compiler support libraries first (or you will see linker errors)
    • sbs -b sf\os\kernelhwsrv\kernel\eka\compsupp\bld.inf -b sf\os\kernelhwsrv\kernel\eka\euser\bld.inf -c arm.v5.urel.rvct4_0 -c arm.v5.udeb.rvct4_0
  • To explicitly specify RVCT 4.0 with Symbian3 SDKS, use the following (not necessary for MCL):
    • sbs -c arm.v5.urel.rvct4_0

Using 64-bit linker for debug builds

Assuming you are on a 32-bit OS, first try to link with --no-svg or --minimal configuration. If linking fails due to OOM, upgrade to 64-bit Windows 7 OS and a 64-bit linker (armlink.exe)

  • Once you are on the 64-bit development host, back-up your armlink.exe from the 4.0 install
  • Obtain the RVCT4.1 toolchain from your organization's compiler tools team, or from ARM.com directly.
  • Extract the 64-bit armlink.exe and drop it over your 4.0 installation's armlink.exe
  • cd Source and them compile as ARMV5 sbs -c arm.v5.udeb.rvct4_0.slimdebug

Building Qt

If case you need newer Qt than what your SDK has, or want debuggability:

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