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: | ||
- | |||
- | |||
= Building Qt5 for the N900 (using scratchbox) = | = Building Qt5 for the N900 (using scratchbox) = | ||
Prerequisites: | Prerequisites: | ||
* any scratchbox ARMEL target, tested with [[CSSU-thumb toolchain setup (gcc4.7.2-linaro)]] | * any scratchbox ARMEL target, tested with [[CSSU-thumb toolchain setup (gcc4.7.2-linaro)]] | ||
- | * 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) | + | ** We still run this build commands '''outside''' of scratchbox and only use the toolchain and sysroot (like with MADDE or for Raspberry Pi etc.) |
- | ** | + | * 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}/sysroots/fremantle-arm-sysroot-20.2010.36-2-slim/usr/include/X11/ (/usr/lib resp.) |
- | ** | + | ** <strike>Binaries available here: [http://repos.fuhlbrueck.net/qt5-maemo5/pool/main/libx/libx11/ repos.fuhlbrueck.net/qt5-maemo5/pool/main/libx/libx11/]</strike> |
- | *** apt-get install libxc11-xcb-dev | + | *** This does not work, we need a libX11.so build with xcb support, however this stops the keyboard from working in other applications |
+ | ** We install a copy of libX11.so with XCB supoort, named libXc11.so and link against this copy | ||
+ | *** apt-get install -o Dpkg::Options::="--path-exclude=/usr/share/" libxc11-xcb-dev | ||
*** all "-lX11" (and "-lX11-xcb") in the Qt sources have been changed to "-lX'''c'''11" ("-lX'''c'''11-xcb" respectively) | *** 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 === | === Prepare your build environment === | ||
+ | GITROOT=`pwd`/qt5-maemo5/ | ||
+ | USER=YourScratchboxUserName | ||
+ | TARGET=FREMANTLE_ARMEL_GCC472 | ||
+ | COMPILER=linaro-4.7-2012.07-fremantle-armv7a | ||
+ | #make some dynamic links relative | ||
+ | rm /scratchbox/users/${USER}/targets/${TARGET}/usr/lib/libdl.so | ||
+ | ln -s ../../libdl.so.2 /scratchbox/users/${USER}/targets/${TARGET}/usr/lib/libdl.so | ||
+ | rm /scratchbox/users/${USER}/targets/${TARGET}/usr/lib/libm.so | ||
+ | ln -s ../../libm.so.6 /scratchbox/users/${USER}/targets/${TARGET}/usr/lib/libm.so | ||
+ | #make our X11 copy Xc11 also relative | ||
+ | rm /scratchbox/users/${USER}/targets/${TARGET}/usr/lib/libXc11.so.6.2.0 | ||
+ | ln -s ../../opt/maemo/usr/lib/libXc11.so.6.2.0 /scratchbox/users/${USER}/targets/${TARGET}/usr/lib/libXc11.so.6.2.0 | ||
+ | rm /scratchbox/users/${USER}/targets/${TARGET}/usr/lib/libXc11-xcb.so.1.0.0 | ||
+ | ln -s ../../opt/maemo/usr/lib/libXc11-xcb.so.1.0.0 /scratchbox/users/${USER}/targets/${TARGET}/usr/lib/libXc11-xcb.so.1.0.0 | ||
#clone the repo | #clone the repo | ||
- | git clone | + | git clone git://gitorious.org/+qt5-maemo5/qt/qt5-maemo5.git |
- | cd qt5-maemo5 && git remote set-url --push origin git@ | + | cd qt5-maemo5 && git remote set-url --push origin git@gitorious.org:+qt5-maemo5/qt/qt5-maemo5.git |
git checkout maemo5 | git checkout maemo5 | ||
- | ./ | + | git clone git://gitorious.org/+qt5-maemo5/qt/qt5-maemo5-qtbase.git qtbase |
- | + | cd qtbase && git checkout maemo5 && git remote set-url --push origin git@gitorious.org:+qt5-maemo5/qt/qt5-maemo5-qtbase.git && cd .. | |
- | + | git clone git://gitorious.org/+qt5-maemo5/qt/qt5-maemo5-qtdeclarative.git/qt/qt5-maemo5-qtdeclarative.git | |
- | + | cd qtdeclarative && git checkout maemo5 && git remote set-url --push origin git@gitorious.org:+qt5-maemo5/qt/qt5-maemo5-qtdeclarative.git && cd .. | |
- | + | ./init-repository -f | |
+ | git config --remove-section submodule.qtbase | ||
+ | git config --add submodule.qtbase.url git://gitorious.org/+qt5-maemo5/qt/qt5-maemo5-qtbase.git | ||
+ | git config --remove-section submodule.qtdeclarative | ||
+ | git config --add submodule.qtdeclarative.url git://gitorious.org/+qt5-maemo5/qt/qt5-maemo5-qtdeclarative.git | ||
#if you like to use the Thumb2 instructions check for -mthumb in QMAKE_CFLAGS | #if you like to use the Thumb2 instructions check for -mthumb in QMAKE_CFLAGS | ||
vim qtbase/mkspecs/devices/linux-maemo-n900-g++/qmake.conf | vim qtbase/mkspecs/devices/linux-maemo-n900-g++/qmake.conf | ||
- | |||
- | |||
- | |||
- | configure for a build | + | 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 |
+ | |||
+ | === Now it's time to configure === | ||
+ | configure for a build outside of scratchbox (standard for now) | ||
#-no-c++11 is only needed because of a single bug (related to gcc4.7?) | #-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 | ./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 | ||
+ | |||
+ | configure '''within scratchbox''' instead (experimental) | ||
+ | PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig/ PKG_CONFIG_SYSROOT_DIR=/ ./configure -no-c++11 -developer-build -opensource -nomake examples -nomake tests -confirm-license -device linux-maemo-n900-g++ -qt-xcb -make libs -prefix /opt/qt5 | ||
=== Finally, we build Qt === | === Finally, we build Qt === | ||
make module-qtbase module-qtdeclarative | make module-qtbase module-qtdeclarative | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
installation (build '''in''' scratchbox (s.a.)) | installation (build '''in''' scratchbox (s.a.)) | ||
Line 49: | Line 62: | ||
cd qtsvg && fakeroot make install && cd .. | cd qtsvg && fakeroot make install && cd .. | ||
cd qtdeclarative && fakeroot make install && cd .. | cd qtdeclarative && fakeroot make install && cd .. | ||
- | ln -s /opt/ | + | ln -s /opt/qy5/bin/qmake /usr/bin/qmake-qt5 |
= Building Qt5 for the N900 (using MADDE) = | = Building Qt5 for the N900 (using MADDE) = | ||
- | |||
Prerequisites: | Prerequisites: | ||
Line 71: | Line 83: | ||
./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 -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 | ||
make module-qtbase module-qtdeclarative | 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 | ||
+ | |||
+ | = Use prebuilt Qt5 to build = | ||
+ | see [http://talk.maemo.org/showpost.php?p=1362248&postcount=82 t.m.o thread] | ||
+ | |||
+ | = Testing Qt5 on the N900 = | ||
+ | currently outdated, but a similar procedure will work again in the future | ||
+ | # as root, e.g. with sudo gainroot | ||
+ | #not endless bandwidth, so use with care: | ||
+ | echo "deb http://repos.fuhlbrueck.net/qt5-maemo5 fremantle main" >> /etc/apt/sources.list.d/hildon-application-manager.list | ||
+ | #libX11-xcb1 is not optified, but tiny | ||
+ | apt-get install libx11-xcb1 qt5-base qt5-declarative | ||
+ | #only for now: | ||
+ | ldconfig /opt/qt5/lib | ||
+ | |||
+ | # as a normal user | ||
+ | # get some example | ||
+ | wget http://repos.fuhlbrueck.net/qt5-maemo5-examples/EXAMPLE | ||
+ | chmod 755 EXAMPLE | ||
+ | ./EXAMPLE | ||
+ | #don't be confused, if it shows some debug output | ||
+ | #report any errors to http://talk.maemo.org/showthread.php?t=84782 |
Learn more about Contributing to the wiki.