Editing Qt5-Maemo5/Development

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
-
If you like to commit to the repositories, create an account on gitlab.com and ask in the [http://talk.maemo.org/showthread.php?t=84782 TMO thread]. See the group [https://gitlab.com/groups/qt5-maemo5] page, for an overview of repositories.
+
If you want to help porting Qt5 to Maemo5 do:
-
 
+
MADDEROOT=/opt/QtSDK/Maemo
-
= Building Qt5 for the N900 (using scratchbox) =
+
  git clone git://gitorious.org/+qt5-maemo5/qt/qt5-maemo5.git
-
 
+
  cd qt5-maemo5 && git remote set-url --push origin git@gitorious.org:+qt5-maemo5/qt
-
Prerequisites:
+
  checkout maemo5
-
* any scratchbox ARMEL target, tested with [[CSSU-thumb toolchain setup (gcc4.7.2-linaro)]]
+
  git clone git://gitorious.org/+qt5-maemo5/qt/qt5-maemo5-qtbase.git qtbase
-
* Xlib-xcb.h and libX11-xcb.so build from http://maemo.org/packages/source/view/fremantle_sdk_free_source/libx11/1.1.99.6+0m5 (build with --with-xcb)
+
git config --add submodule.qtbase.url git://gitorious.org/+qt5-maemo5/qt/qt5-maemo5-qtbase.git
-
** We would need to deliver libX11.so.6 too, but --with-xcb breaks keyboard support for system apps
+
cd qtbase && checkout maemo5 && git remote set-url --push origin git@gitorious.org:+qt5-maemo5/qt/qt5-maemo5-qtbase.git && cd ..
-
** Solution: we install a copy of libX11.so with XCB supoort, named libXc11.so and link against this copy, so system binaries don't load it (tested, works reliably)
+
  ./init-repository -f
-
*** apt-get install libxc11-xcb-dev (with frafl's temporary Qt5 repo enabled, see [[Qt5-Maemo5]])
+
-
*** all "-lX11" (and "-lX11-xcb") in the Qt sources have been changed to "-lX'''c'''11" ("-lX'''c'''11-xcb" respectively)
+
-
 
+
-
 
+
-
=== Prepare your build environment ===
+
-
  #clone the repo
+
-
git clone https://gitlab.com/qt5-maemo5/qt5-maemo5.git
+
-
  cd qt5-maemo5 && git remote set-url --push origin git@gitlab.com:qt5-maemo5/qt5-maemo5.git
+
-
  git checkout maemo5
+
-
  ./init-repository -f --module-subset=all
+
-
  cd qtbase && git remote set-url --push origin git@gitlab.com:qt5-maemo5/qt5-maemo5-qtbase.git && cd ..
+
-
  cd qtdeclarative && git remote set-url --push origin git@gitlab.com:qt5-maemo5/qt5-maemo5-qtdeclarative.git && cd .. 
+
-
  cd qtmaemo5 && git remote set-url --push origin git@gitlab.com:qt5-maemo5/qt5-maemo5-qtmaemo5.git && cd ..
+
-
  cd debian && ./setupdebianlinks.sh && cd ..
+
-
  #if you like to use the Thumb2 instructions check for -mthumb in QMAKE_CFLAGS
+
-
vim qtbase/mkspecs/devices/linux-maemo-n900-g++/qmake.conf
+
-
 
+
-
=== Now it's time to configure ===
+
-
configure for a normal build within scratchbox (now standard)
+
-
  PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig/ PKG_CONFIG_SYSROOT_DIR=/ ./configure -no-c++11 -developer-build -opensource -nomake examples -nomake tests -gtkstyle -confirm-license -device linux-maemo-n900-g++ -qt-xcb -make libs -prefix /opt/qt5
+
-
 
+
-
configure for a build '''outside of scratchbox''' instead (should still work, see wiki history for additional prerequisites)
+
-
#-no-c++11 is only needed because of a single bug (related to gcc4.7?)
+
-
./configure -no-c++11 -developer-build -opensource -nomake examples -nomake tests -confirm-license -device linux-maemo-n900-g++ -device-option CROSS_COMPILE=/scratchbox/compilers/${COMPILER}/bin/arm-none-linux-gnueabi- -sysroot /scratchbox/users/${USER}/targets/${TARGET}/ -qt-xcb -make libs -prefix /opt/qt5
+
-
 
+
-
=== Finally, we build Qt ===
+
-
make module-qtbase module-qtdeclarative
+
-
#or, especially for additional modules, but works for base and declarative, too
+
-
cd qtSOMEMODULE
+
-
../qtbase/bin/qmake
+
-
make
+
-
#if debianized (i.e. debian exists)
+
-
dpkg-buildpackage -b
+
-
#attention: no prober clean rules in debian (to save some time)
+
-
#so remove debian/tmp to force prober reinstall
+
-
 
+
-
installation (build '''in''' scratchbox (s.a.))
+
-
cd qtbase && fakeroot make install && cd ..
+
-
cd qtjsbackend && fakeroot make install && cd ..
+
-
cd qtsvg && fakeroot make install && cd ..
+
-
cd qtdeclarative && fakeroot make install && cd ..
+
-
ln -s /opt/qt5/bin/qmake /usr/bin/qmake-qt5
+
-
 
+
-
= Building Qt5 for the N900 (using MADDE) =
+
-
'''Deprecated'''
+
-
 
+
-
Prerequisites:
+
-
* [[MADDE]]
+
-
* The same as for scratchbox
+
-
 
+
-
 
+
-
MADDEROOT=/opt/QtSDK/Maemo/4.6.2
+
-
#see scratchbox
+
-
git clone ...
+
  #-sysroots redirects everything to a path under ${MADDEROOT}
  #-sysroots redirects everything to a path under ${MADDEROOT}
-
  ln -s `pwd` ${MADDEROOT}/sysroots/fremantle-arm-sysroot-20.2010.36-2-slim`pwd`
+
  ln -s `pwd` ${MADDEROOT}/4.6.2/sysroots/fremantle-arm-sysroot-20.2010.36-2-slim`pwd`
-
#**Remove** -mthumb in QMAKE_CFLAGS (does not work with current MADDE)
+
-
vim qtbase/mkspecs/devices/linux-maemo-n900-g++/qmake.conf
+
-
Now it's time to configure and build:
+
Now it's time to configure:
  #change if your host is not x86_64
  #change if your host is not x86_64
-
  ./configure -developer-build -opensource -nomake examples -nomake tests -confirm-license -device linux-maemo-n900-g++ -device-option CROSS_COMPILE=${MADDEROOT}/toolchains/arm-2007q3-51sb6-gdb71-arm-none-linux-gnueabi_linux_x86_64/bin/arm-none-linux-gnueabi- -sysroot ${MADDEROOT}/sysroots/fremantle-arm-sysroot-20.2010.36-2-slim -qt-xcb -make libs -prefix /opt/qt5
+
  ./configure -developer-build -opensource -nomake examples -nomake tests -no-gtkstyle -confirm-license -device linux-maemo-n900-g++ -device-option CROSS_COMPILE=${MADDEROOT}/4.6.2/toolchains/arm-2007q3-51sb6-gdb71-arm-none-linux-gnueabi_linux_x86_64/bin/arm-none-linux-gnueabi- -sysroot ${MADDEROOT}/4.6.2/sysroots/fremantle-arm-sysroot-20.2010.36-2-slim -qt-xcb -make libs
-
make module-qtbase module-qtdeclarative
+
 
 +
If you like to commit to the repository, create an account on gitorious.org and ask in this thread: http://talk.maemo.org/showthread.php?t=84782

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)