Changes between Version 13 and Version 14 of BuildingQtOnSymbian


Ignore:
Timestamp:
Jan 28, 2011 8:24:44 AM (13 years ago)
Author:
siddharth.mathur@nokia.com
Comment:

--minimal now works on Symbian , added 64-bit linker notes for RVCT4.x, updated Qt to 4.7

Legend:

Unmodified
Added
Removed
Modified
  • BuildingQtOnSymbian

    v13 v14  
    1616If you haven't done so already, try these instructions for a release build:
    1717
    18   * Clone Qt: {{{git clone git://gitorious.org/qt/qt.git qt-4.6}}}
    19   * Set up the 4.6 Branch:
    20     * {{{cd qt-4.6}}}
    21     * {{{git checkout -b 4.6 origin/4.6}}}
     18  * Clone Qt: {{{git clone git://gitorious.org/qt/qt.git qt-4.7}}}
     19  * Set up the 4.7 Branch:
     20    * {{{cd qt-4.7}}}
     21    * {{{git checkout -b 4.7 origin/4.7}}}
    2222    * {{{git branch -D master}}}
    2323  * Configure: {{{configure -xplatform symbian-sbsv2}}}
    2424  * Build for arm with 8 cores: {{{sbs -c armv6_urel -j8}}}
    2525  * Get a cup of tea/coffee.
    26   * [OPTIONAL] Patch capabilities and generate the sis package:[[BR]]{{{cd src/s60installs}}}[[BR]]{{{perl ..\..\bin\patch_capabilities.pl Qt_template.pkg release-armv6}}}[[BR]]{{{make sis}}}
     26  * [OPTIONAL, only needed for self-signed SIS packages] Patch capabilities and generate the sis package:[[BR]]{{{cd src/s60installs}}}[[BR]]{{{perl ..\..\bin\patch_capabilities.pl Qt_template.pkg release-armv6}}}[[BR]]{{{make sis}}}
    2727  * Put the {{{qt-4.6\bin}}} directory in your {{{%PATH%}}}.
    2828
     
    3131  * Build the generated files and set up the build system:
    3232    * {{{cd where-your-webkit-sources-are}}}
    33     * {{{perl Tools\Scripts\build-webkit --qt --symbian CONFIG-=def_files}}}
    34       * 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
    35     * {{{cd WebCore}}}
    36     * Build for hardware: {{{sbs -c armv6_urel -j8 --no-depend-generate}}}
    37     * [OPTIONAL] Patch capabilities: {{{perl %QTDIR%\bin\patch_capabilities.pl QtWebKit_template.pkg release-armv6}}}
     33    * {{{perl Tools\Scripts\build-webkit --qt --symbian --minimal}}}
     34      * If you want to freeze exports (i.e the .def get processed), pass CONFIG+=def_files as an argument to build-webkit as well
     35    * {{{cd Source}}}
     36    * Build for hardware: {{{sbs -c armv6_urel -j8}}}
     37    * [OPTIONAL, only needed for self-signed SIS packages] Patch capabilities: {{{perl %QTDIR%\bin\patch_capabilities.pl QtWebKit_template.pkg release-armv6}}}
    3838    * Create the sis file: {{{make sis}}}
    3939    * Install it on the phone: {{{"C:\Program Files\Nokia\Nokia PC Suite 7\ApplicationInstaller.exe" %CD%\qtwebkit.sis}}}[[BR]]You can also Drag'n'drop the resulting .sis file onto Nokia PC Suite to install it.
    4040
    41   * 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 QtTestBrowser, autotests and DumprenderTree for Symbian.
    42 
    4341== Building WebKit for debug ==
     42  * To reduce size and number of object files, you need either --minimal or --no-svg for build-webkit. With --minimal, the debug-webkit-patch-sbsv2.py script below may not required as it bit rots often. Also needed is a 64-bit Windows OS and a 64-bit RVCT 4.1 linker (armlink.exe) binary. See next section for RVCT4.x notes
    4443  * Almost the same as above:
    4544    * You need to have''' Qt built for debug''' as well
    4645    * {{{cd where-your-webkit-sources-are}}}
    47     * {{{perl Tools\Scripts\build-webkit --qt --symbian}}} {{{CONFIG-=def_files}}} '''--debug'''
     46    * {{{perl Tools\Scripts\build-webkit --qt --symbian --minimal}}} '''--debug'''
    4847    * 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[[BR]] This is necessary because the quantity of debug information in WebKit makes armlink fail. This script works around the problem.
    49     * {{{sbs -c armv6_u}}}'''deb'''{{{ -j8 --no-depend-generate}}}
    50     * {{{[OPTIONAL]perl %QTDIR%\bin\patch_capabilities.pl QtWebKit_template.pkg }}}'''debug'''{{{-armv6}}}
     48    * {{{cd Source}}}
     49    * {{{sbs -c armv6_u}}}'''deb'''{{{ -j8}}}
     50    * {{{[OPTIONAL, only needed for self-signed SIS packages]perl %QTDIR%\bin\patch_capabilities.pl QtWebKit_template.pkg }}}'''debug'''{{{-armv6}}}
    5151    * {{{make sis}}}
    5252
     53== Using RVCT4.0 and 64-bit armlink.exe ==
     54  * RVCT4.0 is know to work nicely with WEbkit.org trunk
     55  * First setup your RVCT4.0 installation by obtaining the binaries and setting up environment variables per ARM's instructions (Nokians may use SymSEE to activate it)
     56  * If using with Symbian^3 SDKs, use {{{sbs -c arm.v5.urel.rvct4_0}}} to compile any project with RVCT4.0. Symbian MCL supports RVCT4.0 out of the box.
     57
     58  In case your link stages run into OOM even with the .py script or with --minimal, you need a 64-bit Windows OS and a 64-bit linker (armlink.exe)
     59  * Back-up your armlink.exe from the 4.0 install
     60  * Obtain the RVCT4.1 toolchain from your organizations compiler tools team, or from ARM.com directly.
     61  * Extract the 64-bit armlink.exe and drop it over your 4.0 installation's armlink.exe
     62  * {{{cd Source}}} and them compile as ARMV5 or ARMV6 {{{sbs -c arm.v5.urel.rvct4_0}}}