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.
| |
- |
| |
- | = Building Qt5 for the N900 (using scratchbox) =
| |
- |
| |
| Prerequisites: | | Prerequisites: |
- | * any scratchbox ARMEL target, tested with [[CSSU-thumb toolchain setup (gcc4.7.2-linaro)]]
| + | - [[MADDE]] |
- | * 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)
| + | - 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) moved to ${MADDEROOT}/4.6.2/sysroots/fremantle-arm-sysroot-20.2010.36-2-slim/usr/include/X11/ (/usr/lib resp.) |
- | ** We would need to deliver libX11.so.6 too, but --with-xcb breaks keyboard support for system apps
| + | |
- | ** 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)
| + | |
- | *** 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)
| + | |
| | | |
- | | + | If you want to help porting Qt5 to Maemo5 do: |
- | === Prepare your build environment === | + | MADDEROOT=/opt/QtSDK/Maemo |
- | #clone the repo
| + | git clone git://gitorious.org/+qt5-maemo5/qt/qt5-maemo5.git |
- | git clone https://gitlab.com/qt5-maemo5/qt5-maemo5.git | + | cd qt5-maemo5 && git remote set-url --push origin git@gitorious.org:+qt5-maemo5/qt |
- | cd qt5-maemo5 && git remote set-url --push origin git@gitlab.com:qt5-maemo5/qt5-maemo5.git | + | checkout maemo5 |
- | git checkout maemo5 | + | git clone git://gitorious.org/+qt5-maemo5/qt/qt5-maemo5-qtbase.git qtbase |
- | ./init-repository -f --module-subset=all | + | git config --add submodule.qtbase.url git://gitorious.org/+qt5-maemo5/qt/qt5-maemo5-qtbase.git |
- | cd qtbase && git remote set-url --push origin git@gitlab.com:qt5-maemo5/qt5-maemo5-qtbase.git && cd ..
| + | cd qtbase && checkout maemo5 && git remote set-url --push origin git@gitorious.org:+qt5-maemo5/qt/qt5-maemo5-qtbase.git && cd .. |
- | cd qtdeclarative && git remote set-url --push origin git@gitlab.com:qt5-maemo5/qt5-maemo5-qtdeclarative.git && cd ..
| + | ./init-repository -f |
- | 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 |