Changes between Version 64 and Version 65 of BuildingQt5OnHarmattan


Ignore:
Timestamp:
Feb 16, 2012, 3:51:12 AM (13 years ago)
Author:
vestbo@webkit.org
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BuildingQt5OnHarmattan

    v64 v65  
    33= Building the Qt port on MeeGo 1.2 Harmattan with Qt 5 =
    44
    5 See also [wiki:BuildingQtOnLinux Building QtWebKit on Linux] and [wiki:SettingUpDevelopmentEnvironmentForN9 Setting Up Development Environment For N9]
     5This page has been deprecated by [wiki:SettingUpDevelopmentEnvironmentForN9 Setting Up Development Environment For N9]
    66
    7 This page, as well as the attempt of achieving this build, is work in progress.
    8 
    9 == Assumptions ==
    10 
    11    * Working Scratchbox setup.  Instructions are here: http://www.developer.nokia.com/Community/Wiki/Harmattan:Platform_Guide/Getting_started_with_Harmattan_Platform_SDK/Installing_Harmattan_Platform_SDK
    12    * Running N950/N9 with root, security disabled and scratchbox home directory mounted via NFS
    13 
    14 == Installing Build Dependencies ==
    15 
    16 Inside Scratchbox:
    17 
    18    * Basic build deps, shared between Qt 5/4 and WebKit stuff: {{{fakeroot apt-get build-dep qt4-x11 libgrob-qtwebkit}}}   ('''Yes, the libgrob-qtwebkit part is intentional''')
    19    * 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}}}
    20    * Ensure the render packages are gone: {{{fakeroot apt-get remove --purge libxcb-render-util0 libxcb-render-util0-dev}}}
    21 
    22 == Getting the Qt sources ==
    23 
    24 Outside Scratchbox:
    25 
    26    * {{{git clone git://gitorious.org/qt/qt5.git qt5}}}
    27    * {{{cd qt5}}}
    28    * Check out the current qt5 revision used by the bot to run tests: {{{git checkout 91f83fa33a1cc5a97b17d8e4d25e1bb952006061}}}
    29    * Initialize & Clone the sub-modules needed: {{{./init-repository --module-subset=qtbase,qtxmlpatterns,qtscript,qtdeclarative}}}
    30 
    31 Note: '''Use the following commands to update from a previous check-out''':
    32    * {{{cd qt5}}}
    33    * {{{git fetch --recurse-submodules}}}
    34    * {{{git checkout 91f83fa33a1cc5a97b17d8e4d25e1bb952006061}}}
    35    * {{{git submodule update --recursive}}}
    36 
    37 If you'd like to clean out everything(!), you can use the following sequence of commands:
    38    * {{{cd qt5}}}
    39    * {{{git submodule foreach --recursive git clean -fdx}}}
    40    * {{{git clean -fdx}}}
    41    * {{{./configure ......}}}
    42 
    43 == Build Instructions for Qt ==
    44 
    45 Note: '''DO NOT USE SHADOW BUILDS OF QT (MODULES) AT THE MOMENT'''.
    46 
    47 Inside Scratchbox in the {{{qt5}}} directory:
    48    ||{{{export -n QTDIR}}}||To unset QTDIR. Or make sure that QTDIR points to your qt5/qtbase directory.||
    49    ||{{{./configure -developer-build -opensource -confirm-license -fast -force-pkg-config -nomake tests -nomake examples -nomake demos -platform linux-g++-maemo }}}||Note the use of the maemo mkspec||
    50    ||{{{make}}}||From the toplevel qt5 directory to build all modules in one shot.||
    51    ||{{{export PATH=$PWD/qtbase/bin:$PATH}}}||Ensure your PATH is up-to-date to use the qt5 qmake instead of the default one.||
    52 
    53 == Qt5 packages for Harmattan ==
    54 
    55 If you don't want to build Qt5 from scratch you can use a repository with the Qt5 modules required by QtWebKit. Instructions on Qt wiki: http://wiki.qt-project.org/Qt_5_on_Nokia_N9
    56 
    57 == Build WebKit ==
    58 
    59    * {{{perl Tools/Scripts/build-webkit --qt --release --no-3d-canvas --qmakearg="CONFIG+=use_qt_mobile_theme"}}}
    60 
    61 == Install dependencies on the device ==
    62 
    63    * Some packages are not in the device apt repositories and therefore need to be transfered from scratchbox.
    64        * Execute the following lines inside scratchbox:
    65          {{{
    66 fakeroot apt-get -d install libxcb-image0 libxcb-keysyms1 libxcb-icccm1 libxcb-aux0 libxcb-event1 libxcb-property1
    67 mkdir ~/swork/packages && cd ~/swork/packages
    68 cp /var/cache/apt/archives/libxcb-image0_* .
    69 cp /var/cache/apt/archives/libxcb-keysyms1_* .
    70 cp /var/cache/apt/archives/libxcb-icccm1_* .
    71 cp /var/cache/apt/archives/libxcb-aux0_* .
    72 cp /var/cache/apt/archives/libxcb-event1_* .
    73 cp /var/cache/apt/archives/libxcb-property1_* .
    74 }}}
    75        * Now ssh to the device and change into your NFS mounted directory to install the previously downloaded packages
    76 {{{
    77 cd /your_nfs_mount/swork/packages/
    78 dpkg -i *
    79 }}}
    80 
    81 == WebKit snapshot packages for N9 ==
    82 
    83 (Almost) Daily snapshots of WebKit are available in the same repository of the Qt5 packages. The package is named 'webkit-snapshot' and the version number indicates the SVN revision that it was built with. The package copies everything from WebKitBuild/Release, except the Source folder, and installs to the same target directory of Qt5, /opt/qt5.
    84 
    85 Installation (as root through developer mode "devel-su" command):
    86 
    87 {{{
    88 apt-get update
    89 apt-get install webkit-snapshot
    90 }}}
     7See also [wiki:BuildingQtOnLinux Building QtWebKit on Linux]