Kukkimonsuta / rpi-buildqt

Guide for cross compiling QT 5.8 with piomxtextures for raspberry pi
MIT License
45 stars 24 forks source link

Loop for downloading and install/building qt modules #7

Closed zevero closed 7 years ago

zevero commented 7 years ago

Hi, thank you. I was able to compile everything as advertised!

As I have quite some qt modules, I decided to replace your scripts 3.1 - 3.4 by looping scripts 3.x and 1.x for downloads. For this I added in env.sh QT_INSTALL_MODULES_X="qtdeclarative qtquickcontrols qtquickcontrols2 qtmultimedia" Note that you can build and install a single qt module by doing 3.x_build_modules.sh qtfoo

In env I added QT_INSTALL_VERSION=5.8

I removed the first * in front of sudo apt-get purge *gstreamer* . Otherwise nothing gets uninstalled and the poc_player refuses to work.

I added a .gitignore

zevero commented 7 years ago

I managed to compile qt modules qtdeclarative qtquickcontrols qtquickcontrols2 qtmultimedia qtsvg qtxmlpatterns qtwebsockets qtserialport qtwebchannel

However I failed in compiling qtscript

In file included from ../3rdparty/javascriptcore/JavaScriptCore/config.h:26:0,
                 from ../3rdparty/javascriptcore/JavaScriptCore/pcre/pcre_compile.cpp:44:
../3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h:370:6: error: #error "Not supported ARM architecture"
 #    error "Not supported ARM architecture"
      ^

and of course qtwebengine

using python: /usr/bin/python version: 2.7.13
Using extra options found in /tmp/sd-kukki/raspi/src/qtwebengine/src/core/qmake_extras.gypi
Using extra options found in /tmp/sd-kukki/raspi/src/qtwebengine/src/core/qtwebengine_extras.gypi
Using extra options found in /tmp/sd-kukki/raspi/src/qtwebengine/src/core/qmake_extras.gypi
Using extra options found in /tmp/sd-kukki/raspi/src/qtwebengine/src/core/qtwebengine_extras.gypi
Updating projects from gyp files...
gyp: name 'arm_thumb' is not defined while evaluating condition 'arm_thumb==1' in /tmp/sd-kukki/raspi/src/qtwebengine/src/core/core_generated.gyp
gyp: name 'arm_thumb' is not defined while evaluating condition 'arm_thumb==1' in /tmp/sd-kukki/raspi/src/qtwebengine/src/core/resources/resources.gyp
Project ERROR: -- running gyp_qtwebengine failed --
Kukkimonsuta commented 7 years ago

Great contribution! Once I get some time to walk though it on my machine I'll merge, thank you 👍

Kukkimonsuta commented 7 years ago

When building from scratch I get an error on 3.x_build_modules.sh 'Project ERROR: Could not find feature qml-network.'

I believe qmake -r is not appropriate there.

matthewmgamble commented 7 years ago

For qtwebengine support on the Pi3 you need to edit src/core/gyp_run.pro in the qtwebengine directory and find the if statement block for arm and add GYP_CONFIG += arm_thumb=1 to force arm_thumb mode support - I haven't had time to fully debug why it isn't detecting things properly but this quick fix gets it compiling and working.

zevero commented 7 years ago

@Kukkimonsuta You are right -r flag is not working with qtdeclarative qtquickcontrols2 qtxmlpatterns I would have to check which one really need it - I just copied it over from our build scripts and we never had issues with it.

Maybe looping is not appropriate as long as compiling is difficult... If I can compile qtwebengine and get my project running, I will definitively have motivation to put some more work into this PR...

zevero commented 7 years ago

@matthewmgamble Thank you! Pasted it under contains(QMAKE_CFLAGS, "-mthumb"): GYP_CONFIG += arm_thumb=1 and getting a lot of Warning: IT blocks containing 32-bit Thumb instructions are deprecated in ARMv8 but it IS compiling!! Thank you!

zevero commented 7 years ago

@matthewmgamble qtwebengine is indeed working and pages load fast. Nevertheless the browser is not seeming to receive any input from either mouse or touch. However, using a keyboard, I can select and load with TAB and ENTER or using SPACE or ARROW KEYs scroll etc...

so close ...

Kukkimonsuta commented 7 years ago

Hopefully I'll have some free time during the next week and I'd like to incorporate your changes into the master branch, however I'd like to first test everything out and possibly make some changes, so I'd like to ask you to first rebase your changes to dev branch that I've just created. Thank you

zevero commented 7 years ago

Updated for 5.9 with eglfs and qtwebengine

zevero commented 7 years ago

Changed base branch to dev. I am curious if you can compile it with mouse interaction! I have chosen raspberry for our project with 30 info terminals since I thought it was a well supported embedded device and performance on raspbian pixel seemed sufficient. In our proper qt application however webengine performance is far worse (not due to high CPU load, or small bandwith ... it is mainly just sitting around). Due to lacking hardware acc we fall back on omxplayer for video, which is not pretty either...