maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Development (https://talk.maemo.org/forumdisplay.php?f=13)
-   -   Qt development on-device (N900) (https://talk.maemo.org/showthread.php?t=90701)

szopin 2013-07-10 20:20

Qt development on-device (N900)
 
In case someone needs to do a quick fix on the bus (haven't found any thread about this except chroot option). Managed to get Qrencode (first qt source I found) compiled with just a few steps:

Needed packages (except for standard gcc, used 4.4, 4.6/7 should work, no idea about 4.2) - libqt4-test, libsqlite3-dev, libqt4-dev

libqt4-dev from SDK repo has x86 binary of qmake. This one has ARM version:
https://garage.maemo.org/frs/downloa...0909_armel.deb

The other two packages I grabbed from marmistrz's repo I believe.

Generating makefile works. Make results in a lot of assembler errors though (Error: selected processor does not support ARM mode `ldrex r2,[r3]`). Turning off optimizations helps a bit, down to 4 errors from a few hundred. Not sure if this will help in all cases, but adding:
Code:

-march=armv7-a -marm -mfloat-abi=softfp
to CFLAGS resulted in a successful compile. Binary works.

Now to compile qtcreator...

szopin 2013-07-12 09:52

Re: Qt development on-device (N900)
 
3 Attachment(s)
It works! Kind of.
There's definitely option overload in the main menu (the screenshot with horizontal lines, they are clickable though require a bit of patience), not sure how hard it would be to spread the options into two/three submenus. Some of the editable text fields also behave a bit wonky (display text once you start editing it).
Used libQtDesigner.so's from ubuntu (maemo's 4.5.3 complained on startup when loading few plugins, libqthelp seems to be working), to build you'll also need QtHelp/QtDesigner folders in /usr/include (used the ones from here: http://portal.nersc.gov/svn/visit/ta...4.7.4/include/).
You can put the softfp cflag in /usr/share/qt4/mkspecs/linux-g++-maemo5/qmake.conf to not have to edit each makefile qmake creates.
Had to use g++ 4.2, mangling of va_lists which usually is just a mildly irritating warning, here results in errors. The garage version of libqt4-dev doesn't install nicely on CSSU (depends = 4.7.0), but still works after dpkg, one just needs to update symlinks in /usr/lib. Building version 2.1.0 on non-overclocked device takes some 18 hours.

jessi3k3 2013-07-12 11:59

Re: Qt development on-device (N900)
 
Quote:

Originally Posted by szopin (Post 1358436)
It works! Kind of.
There's definitely option overload in the main menu (the screenshot with horizontal lines, they are clickable though require a bit of patience), not sure how hard it would be to spread the options into two/three submenus. Some of the editable text fields also behave a bit wonky (display text once you start editing it).
Used libQtDesigner.so's from ubuntu (maemo's 4.5.3 complained on startup when loading few plugins, libqthelp seems to be working), to build you'll also need QtHelp/QtDesigner folders in /usr/include (used the ones from here: http://portal.nersc.gov/svn/visit/ta...4.7.4/include/).
You can put the softfp cflag in /usr/share/qt4/mkspecs/linux-g++-maemo5/qmake.conf to not have to edit each makefile qmake creates.
Had to use g++ 4.2, mangling of va_lists which usually is just a mildly irritating warning, here results in errors. The garage version of libqt4-dev doesn't install nicely on CSSU (depends = 4.7.0), but still works after dpkg, one just needs to update symlinks in /usr/lib. Building version 2.1.0 on non-overclocked device takes some 18 hours.

I ported a Desktop QT application to the N900 and it was quite a mess. I had to build QT from scratch in scratchbox because it had a few missing libraries dependencies that are either not included in the CSSU or not updated. (libQtHelp, libQtCLucene just to name some). I had to include them with the application which is annoying.

I can probably provide you the natively built 4.7.4 libraries if you need them instead of using ubuntu's, but if those work then that's fine.


I mainly wanted to point out the handling of the file menu, I also have that problem where it barfs all of the options from all submenus on the Desktop into a single menu on the N900, but in my case there are so many options that I just get a blank file menu dropdown. I haven't had time to fix this but it should be possible to separate into several submenus but that requires tweaking the source. A quick 'fix' is to simply comment out declarations of several file menu commands that you deem unnecessary to shorten the list, it should make the buttons bigger.

Edit: To clarify, I pulled the QT source from the CSSU repo and built it myself in scratchbox, not the global 4.7.4 if that makes a difference.

marmistrz 2013-07-12 12:28

Re: Qt development on-device (N900)
 
And what about qt4-dev-arm for 4.7.4?

jessi3k3 2013-07-12 12:35

Re: Qt development on-device (N900)
 
Quote:

Originally Posted by marmistrz (Post 1358459)
And what about qt4-dev-arm for 4.7.4?

Wouldn't that just be the packaged built shared libraries and include files?

szopin 2013-07-12 16:09

Re: Qt development on-device (N900)
 
Quote:

Originally Posted by jessi3k3 (Post 1358462)
Wouldn't that just be the packaged built shared libraries and include files?

This -dev package is unlike standard ones as it contains for /usr/bin/:
Code:

lrelease      lupdate      moc          qdbuscpp2xml  qmake        rcc          uic-qt4
lrelease-qt4  lupdate-qt4  moc-qt4      qdbusxml2cpp  qmake-qt4    uic

as well (not sure if this is full binary set, as some folders were missing from /usr/include). To fix apt-get (won't let me install anything without 'fixing' libqt4-dev) I'll try to tweak the 4.7.0 deb to pretend it is .4, if you can upload the missing libQt* .so's that would be great. Will have a look at getting proper -dev 4.7.4 package later

jessi3k3 2013-07-12 23:39

Re: Qt development on-device (N900)
 
Quote:

Originally Posted by szopin (Post 1358515)
This -dev package is unlike standard ones as it contains for /usr/bin/:
Code:

lrelease      lupdate      moc          qdbuscpp2xml  qmake        rcc          uic-qt4
lrelease-qt4  lupdate-qt4  moc-qt4      qdbusxml2cpp  qmake-qt4    uic

as well (not sure if this is full binary set, as some folders were missing from /usr/include). To fix apt-get (won't let me install anything without 'fixing' libqt4-dev) I'll try to tweak the 4.7.0 deb to pretend it is .4, if you can upload the missing libQt* .so's that would be great. Will have a look at getting proper -dev 4.7.4 package later

All of those binaries are built in my /bin directory. I believe that the -qt4 are just softlinks pointing to their actual counterparts.

I'm not sure to what extend which libraries are missing, I can upload both the bin and lib directories but they're not small in size (~300mb). Give me some time.

The entire build directory is ~2GB in size.

Edit: What a gaffe, the filesize becomes bloated when I view my ext partition through windows. ext2fs for windows counts symlinks as their full size, essentially tripling the estimated file size. It's actually ~90mb when extracted.

jessi3k3 2013-07-13 00:03

Re: Qt development on-device (N900)
 
1 Attachment(s)
I've uploaded an archive with all
/lib/
/bin/
/include/

files. Let me know if they work. I hope the symlinks are preserved in the archive.

Qt-4.7.4-x11-maemo.tar.gz

Also, let me know if you need anything else within the build directory.

These should be all the files, see the attached install script that I found

Notice how on the script there are missing entries for libqthelp, libqtdesigner, etc, but they're built anyways.

pichlo 2013-12-20 11:03

Re: Qt development on-device (N900)
 
Thanks for this thread!

Please excuse my ignorance but I am having some problems setting it up. This is what I get when I try to install libqt4-dev, regardless whether the one from Fremantle SDK or the one from the first post (abbreviated):
Code:

The following packages have unmet dependencies:
  libqt4-dev: Depends: libgles2-sgx-img-dev but it is not installable
              Depends: opengles-sgx-img-common-dev but it is not installable

Where can I find the two missing packages? Not in extras-*, cssu-* or fremantle-* :(

szopin 2013-12-20 11:25

Re: Qt development on-device (N900)
 
try those:

http://repository.maemo.org/pool/fre...ngles-sgx-img/


All times are GMT. The time now is 02:11.

vBulletin® Version 3.8.8