How to build QtQuick module in older Qt versions
-
This question is for those who have experience building older versions of Qt from source:
I need to build Qt 5.3.2 from source. I'm cross-compiling on an Ubuntu host for an ARM target. (Sorry, but I don't have choice of Qt version in this situation.)
I wish to build the QtQuick module as part of this cross-compile, but it doesn't do it, even when I use a simple configure line followed by make. It builds many modules, but not QtQuick. Also, QtQuick is not listed in the config summary.
Is there a trick with earlier Qt versions like 5.3.2 to have it build the QtQuick module as part of the build? Or do I need to build it separately?
Data point: When I install Qt 5.3.2 from binaries on Ubuntu 18.04, the QtQuick library/includes are available:
http://master.qt.io/new_archive/qt/5.3/5.3.2/qt-opensource-linux-x64-5.3.2.runBTW, I am using the following source file:
http://master.qt.io/new_archive/qt/5.3/5.3.2/single/qt-everywhere-opensource-src-5.3.2.tar.xz- Steve
-
-
Hi,
Did you check the configure logs to see what test may have failed that disables that module ?
-
Thanks for your idea!
In qtbase, I see a config.summary. Here's the contents - It does not list any of the QML/Quick features as yes or no. (That's why I wondered if QtQuick module is really part of the "everything" source build.) I also show the contents of config.status at the end.
Please let me know if you'd like to see another log file and what name it would have.
config.summary:
Configure summary
Building on: linux-g++ (x86_64, CPU features: mmx sse sse2)
Building for: linux-buildroot-arm-uclibcgnueabi-g++ (arm, CPU features:)
Platform notes:- Also available for Linux: linux-kcc linux-icc linux-cxx
qmake vars .......... styles += mac fusion windows DEFINES += QT_NO_MTDEV DEFINES += QT_NO_LIBUDEV QMAKE_X11_PREFIX = /usr sql-drivers = sql-plugins = sqlite qmake switches .........
Build options:
Configuration .......... accessibility audio-backend c++11 clock-gettime clock-monotonic compile_examples concurrent cross_compile evdev eventfd freetype full-config getaddrinfo getifaddrs inotify ipv6ifname large-config largefile linuxfb medium-config minimal-config mremap no-harfbuzz no-pkg-config pcre png posix_fallocate qpa qpa release rpath shared small-config zlib
Build parts ............ libs examples
Mode ................... release
Using C++11 ............ yes
Using PCH .............. no
Target compiler supports:
iWMMXt/Neon .......... no/autoQt modules and options:
Qt D-Bus ............... no
Qt Concurrent .......... yes
Qt GUI ................. yes
Qt Widgets ............. yes
Large File ............. yes
QML debugging .......... yes
Use system proxies ..... noSupport enabled for:
Accessibility .......... yes
ALSA ................... no
CUPS ................... no
Evdev .................. yes
FontConfig ............. no
FreeType ............... yes (bundled copy)
Glib ................... no
GTK theme .............. no
HarfBuzz ............... no
Iconv .................. no
ICU .................... no
Image formats:
GIF .................. yes (plugin, using bundled copy)
JPEG ................. yes (plugin, using bundled copy)
PNG .................. yes (in QtGui, using bundled copy)
journald ............... no
mtdev .................. no
Networking:
getaddrinfo .......... yes
getifaddrs ........... yes
IPv6 ifname .......... yes
OpenSSL .............. no
NIS .................... no
OpenGL / OpenVG:
EGL .................. no
OpenGL ............... no
OpenVG ............... no
PCRE ................... yes (bundled copy)
pkg-config ............. no
PulseAudio ............. no
QPA backends:
DirectFB ............. no
EGLFS ................ no
KMS .................. no
LinuxFB .............. yes
XCB .................. no
Session management ..... yes
SQL drivers:
DB2 .................. no
InterBase ............ no
MySQL ................ no
OCI .................. no
ODBC ................. no
PostgreSQL ........... no
SQLite 2 ............. no
SQLite ............... yes (plugin, using bundled copy)
TDS .................. no
udev ................... no
xkbcommon .............. no
zlib ................... yes (bundled copy)NOTE: Qt is using double for qreal on this system. This is binary incompatible against Qt 5.1.
Configure with '-qreal float' to create a build that is binary compatible with 5.1.config.status
#!/bin/sh
if [ "$#" -gt 0 ]; then
/home/parallels/Documents/qt-everywhere-opensource-src-5.3.2/qtbase/configure -prefix /home/parallels/Documents/qt-everywhere-opensource-src-5.3.2/qtbase -opensource -confirm-license -nomake tests -no-pch -xplatform linux-buildroot-arm-uclibcgnueabi-g++ -release -qt-libjpeg -qt-libpng -no-opengl -skip qtwebkit "$@"
else
/home/parallels/Documents/qt-everywhere-opensource-src-5.3.2/qtbase/configure -prefix /home/parallels/Documents/qt-everywhere-opensource-src-5.3.2/qtbase -opensource -confirm-license -nomake tests -no-pch -xplatform linux-buildroot-arm-uclibcgnueabi-g++ -release -qt-libjpeg -qt-libpng -no-opengl -skip qtwebkit
fi -
There's also a folder with the test results that you should be able to grep to see if there's anything relevant.
-
Thanks for that. Are you talking about config.tests? I see some Qt project code in there, but it's not built. This is not related to the -nomake tests configure option, hopefully.
Here's what I see:
parallels@parallels-Parallels-Virtual-Platform:~/Documents/qt-everywhere-opensource-src-5.3.2$ ls
configure LICENSE.PREVIEW.COMMERCIAL qtdoc qt.pro qttools qtxmlpatterns
configure.bat Makefile qtenginio qtquick1 qttranslations README
gnuwin32 qtactiveqt qtgraphicaleffects qtquickcontrols qtwebkit
LGPL_EXCEPTION.txt qtandroidextras qtimageformats qtscript qtwebkit-examples
LICENSE.FDL qtbase qtlocation qtsensors qtwebsockets
LICENSE.GPL qtconnectivity qtmacextras qtserialport qtwinextras
LICENSE.LGPL qtdeclarative qtmultimedia qtsvg qtx11extras
parallels@parallels-Parallels-Virtual-Platform:~/Documents/qt-everywhere-opensource-src-5.3.2$ cd qtbase/
parallels@parallels-Parallels-Virtual-Platform:~/Documents/qt-everywhere-opensource-src-5.3.2/qtbase$ ls
bin configure.bat header.FDL LGPL_EXCEPTION.txt LICENSE.PREVIEW.COMMERCIAL sync.profile
config.status dist header.LGPL lib mkspecs tests
config.summary doc header.LGPL-ONLY LICENSE.FDL qmake tools
config.tests examples include LICENSE.GPL qtbase.pro util
configure header.BSD INSTALL LICENSE.LGPL src
parallels@parallels-Parallels-Virtual-Platform:~/Documents/qt-everywhere-opensource-src-5.3.2/qtbase$ more config.tests/*** config.tests/: directory ***
parallels@parallels-Parallels-Virtual-Platform:~/Documents/qt-everywhere-opensource-src-5.3.2/qtbase$ cd config.tests/
parallels@parallels-Parallels-Virtual-Platform:~/Documents/qt-everywhere-opensource-src-5.3.2/qtbase/config.tests$ ls
arch common mac qpa unix x11
parallels@parallels-Parallels-Virtual-Platform:~/Documents/qt-everywhere-opensource-src-5.3.2/qtbase/config.tests$ cd arch
parallels@parallels-Parallels-Virtual-Platform:~/Documents/qt-everywhere-opensource-src-5.3.2/qtbase/config.tests/arch$ ls
arch.cpp arch_host.pro arch.proIf you can think of the name of the folder or files I should be looking for, I'd be glad to search them for errors. I can also increase my terminal capture and post all the configure output, or at least try to look for some clues.
-
Let's start again:
- nuke your sources as they now contain artifacts
- extract them fresh
- use an out of source build
The out of source build allows you to keep your sources clean and it will also contain less stuff to inspect after the configuration step.
-
My Qt 5.3.2 out-of-source cross-compile completed fine, but there was no libQt5Quick.so target built and written to qtbase/lib. Also, there are no QtQuick headers in qtbase/include.
This differs quite wildly from what the Qt 5.3.2 installer binaries provide on Linux. The versions differ so much that I don't think it's really configure differences. Maybe it's down to open source vs commercial option, or some sort of deployment differences that makes them vary so much.
Let me know if you'd like to see any directory listings. I can't identify any config log results files.
- Steve
parallels@parallels-Parallels-Virtual-Platform:~/Documents$ cd qt5_3_2_for_ARM/
parallels@parallels-Parallels-Virtual-Platform:~/Documents/qt5_3_2_for_ARM$ cd qtbase/lib
parallels@parallels-Parallels-Virtual-Platform:~/Documents/qt5_3_2_for_ARM/qtbase/lib$ ls -al
total 25112
drwxrwxr-x 4 parallels parallels 4096 Aug 11 16:05 .
drwxrwxr-x 11 parallels parallels 4096 Aug 11 16:07 ..
drwxrwxr-x 13 parallels parallels 4096 Aug 11 16:04 cmake
-rw-rw-r-- 1 parallels parallels 3896894 Aug 11 15:49 libQt5Bootstrap.a
-rw-rw-r-- 1 parallels parallels 641 Aug 11 15:48 libQt5Bootstrap.la
-rw-rw-r-- 1 parallels parallels 911 Aug 11 15:48 libQt5Bootstrap.prl
-rw-rw-r-- 1 parallels parallels 795 Aug 11 15:54 libQt5Concurrent.la
-rw-rw-r-- 1 parallels parallels 971 Aug 11 15:54 libQt5Concurrent.prl
lrwxrwxrwx 1 parallels parallels 25 Aug 11 15:54 libQt5Concurrent.so -> libQt5Concurrent.so.5.3.2
lrwxrwxrwx 1 parallels parallels 25 Aug 11 15:54 libQt5Concurrent.so.5 -> libQt5Concurrent.so.5.3.2
lrwxrwxrwx 1 parallels parallels 25 Aug 11 15:54 libQt5Concurrent.so.5.3 -> libQt5Concurrent.so.5.3.2
-rwxrwxr-x 1 parallels parallels 27580 Aug 11 15:54 libQt5Concurrent.so.5.3.2
-rw-rw-r-- 1 parallels parallels 688 Aug 11 15:49 libQt5Core.la
-rw-rw-r-- 1 parallels parallels 908 Aug 11 15:49 libQt5Core.prl
lrwxrwxrwx 1 parallels parallels 19 Aug 11 15:53 libQt5Core.so -> libQt5Core.so.5.3.2
lrwxrwxrwx 1 parallels parallels 19 Aug 11 15:53 libQt5Core.so.5 -> libQt5Core.so.5.3.2
lrwxrwxrwx 1 parallels parallels 19 Aug 11 15:53 libQt5Core.so.5.3 -> libQt5Core.so.5.3.2
-rwxrwxr-x 1 parallels parallels 6188200 Aug 11 15:53 libQt5Core.so.5.3.2
-rw-rw-r-- 1 parallels parallels 746 Aug 11 15:54 libQt5Gui.la
-rw-rw-r-- 1 parallels parallels 962 Aug 11 15:54 libQt5Gui.prl
lrwxrwxrwx 1 parallels parallels 18 Aug 11 15:58 libQt5Gui.so -> libQt5Gui.so.5.3.2
lrwxrwxrwx 1 parallels parallels 18 Aug 11 15:58 libQt5Gui.so.5 -> libQt5Gui.so.5.3.2
lrwxrwxrwx 1 parallels parallels 18 Aug 11 15:58 libQt5Gui.so.5.3 -> libQt5Gui.so.5.3.2
-rwxrwxr-x 1 parallels parallels 4739704 Aug 11 15:58 libQt5Gui.so.5.3.2
-rw-rw-r-- 1 parallels parallels 774 Aug 11 15:53 libQt5Network.la
-rw-rw-r-- 1 parallels parallels 955 Aug 11 15:53 libQt5Network.prl
lrwxrwxrwx 1 parallels parallels 22 Aug 11 15:54 libQt5Network.so -> libQt5Network.so.5.3.2
lrwxrwxrwx 1 parallels parallels 22 Aug 11 15:54 libQt5Network.so.5 -> libQt5Network.so.5.3.2
lrwxrwxrwx 1 parallels parallels 22 Aug 11 15:54 libQt5Network.so.5.3 -> libQt5Network.so.5.3.2
-rwxrwxr-x 1 parallels parallels 1435080 Aug 11 15:54 libQt5Network.so.5.3.2
-rw-rw-r-- 1 parallels parallels 940008 Aug 11 15:59 libQt5PlatformSupport.a
-rw-rw-r-- 1 parallels parallels 733 Aug 11 15:58 libQt5PlatformSupport.la
-rw-rw-r-- 1 parallels parallels 1054 Aug 11 15:58 libQt5PlatformSupport.prl
-rw-rw-r-- 1 parallels parallels 831 Aug 11 16:04 libQt5PrintSupport.la
-rw-rw-r-- 1 parallels parallels 996 Aug 11 16:04 libQt5PrintSupport.prl
lrwxrwxrwx 1 parallels parallels 27 Aug 11 16:05 libQt5PrintSupport.so -> libQt5PrintSupport.so.5.3.2
lrwxrwxrwx 1 parallels parallels 27 Aug 11 16:05 libQt5PrintSupport.so.5 -> libQt5PrintSupport.so.5.3.2
lrwxrwxrwx 1 parallels parallels 27 Aug 11 16:05 libQt5PrintSupport.so.5.3 -> libQt5PrintSupport.so.5.3.2
-rwxrwxr-x 1 parallels parallels 489864 Aug 11 16:05 libQt5PrintSupport.so.5.3.2
-rw-rw-r-- 1 parallels parallels 746 Aug 11 15:54 libQt5Sql.la
-rw-rw-r-- 1 parallels parallels 943 Aug 11 15:54 libQt5Sql.prl
lrwxrwxrwx 1 parallels parallels 18 Aug 11 15:54 libQt5Sql.so -> libQt5Sql.so.5.3.2
lrwxrwxrwx 1 parallels parallels 18 Aug 11 15:54 libQt5Sql.so.5 -> libQt5Sql.so.5.3.2
lrwxrwxrwx 1 parallels parallels 18 Aug 11 15:54 libQt5Sql.so.5.3 -> libQt5Sql.so.5.3.2
-rwxrwxr-x 1 parallels parallels 295936 Aug 11 15:54 libQt5Sql.so.5.3.2
-rw-rw-r-- 1 parallels parallels 753 Aug 11 15:54 libQt5Test.la
-rw-rw-r-- 1 parallels parallels 959 Aug 11 15:54 libQt5Test.prl
lrwxrwxrwx 1 parallels parallels 19 Aug 11 15:54 libQt5Test.so -> libQt5Test.so.5.3.2
lrwxrwxrwx 1 parallels parallels 19 Aug 11 15:54 libQt5Test.so.5 -> libQt5Test.so.5.3.2
lrwxrwxrwx 1 parallels parallels 19 Aug 11 15:54 libQt5Test.so.5.3 -> libQt5Test.so.5.3.2
-rwxrwxr-x 1 parallels parallels 226456 Aug 11 15:54 libQt5Test.so.5.3.2
-rw-rw-r-- 1 parallels parallels 783 Aug 11 15:59 libQt5Widgets.la
-rw-rw-r-- 1 parallels parallels 968 Aug 11 15:59 libQt5Widgets.prl
lrwxrwxrwx 1 parallels parallels 22 Aug 11 16:04 libQt5Widgets.so -> libQt5Widgets.so.5.3.2
lrwxrwxrwx 1 parallels parallels 22 Aug 11 16:04 libQt5Widgets.so.5 -> libQt5Widgets.so.5.3.2
lrwxrwxrwx 1 parallels parallels 22 Aug 11 16:04 libQt5Widgets.so.5.3 -> libQt5Widgets.so.5.3.2
-rwxrwxr-x 1 parallels parallels 7041684 Aug 11 16:04 libQt5Widgets.so.5.3.2
-rw-rw-r-- 1 parallels parallels 746 Aug 11 15:54 libQt5Xml.la
-rw-rw-r-- 1 parallels parallels 943 Aug 11 15:54 libQt5Xml.prl
lrwxrwxrwx 1 parallels parallels 18 Aug 11 15:54 libQt5Xml.so -> libQt5Xml.so.5.3.2
lrwxrwxrwx 1 parallels parallels 18 Aug 11 15:54 libQt5Xml.so.5 -> libQt5Xml.so.5.3.2
lrwxrwxrwx 1 parallels parallels 18 Aug 11 15:54 libQt5Xml.so.5.3 -> libQt5Xml.so.5.3.2
-rwxrwxr-x 1 parallels parallels 300152 Aug 11 15:54 libQt5Xml.so.5.3.2
drwxrwxr-x 2 parallels parallels 4096 Aug 11 16:04 pkgconfig -
Here's an archive of the out-of-source build folder for your perusal. Let me know if you have any additional ideas.
https://drive.google.com/file/d/11br1JH2m7zmNHNnAI3rR7EYgUadRAgJo/view?usp=sharing
And thanks again for your help.
-
The out-of source build did generate some other libraries which it didn't publish to qtbase/lib. Here's the list. It includes Qt5Qml.so, which should have been published to qtbase/lib.
Also, I have a theory that the missing QtQuick library may actually be the QtDeclarative library which is perhaps renamed and copied as part of a deploy step. I found a clue in the 5.3.2 source tree:
parallels@parallels-Parallels-Virtual-Platform:~/Documents/qt-everywhere-opensource-src-5.3.2$ grep Qt5Quick * -R
qttools/src/windeployqt/main.cpp: { QtQuickModule, "quick", "Qt5Quick", "qtdeclarative" },parallels@parallels-Parallels-Virtual-Platform:~/Documents/qt5_3_2_for_ARM$ find . -type f -name 'lib*'
./qtserialport/lib/libQt5SerialPort.so.5.3.2
./qtserialport/lib/libQt5SerialPort.la
./qtserialport/lib/libQt5SerialPort.prl
./qtsvg/plugins/iconengines/libqsvgicon.so
./qtsvg/plugins/imageformats/libqsvg.so
./qtsvg/lib/libQt5Svg.la
./qtsvg/lib/libQt5Svg.prl
./qtsvg/lib/libQt5Svg.so.5.3.2
./qtbase/plugins/platforms/libqlinuxfb.so
./qtbase/plugins/platforms/libqoffscreen.so
./qtbase/plugins/platforms/libqminimal.so
./qtbase/plugins/imageformats/libqgif.so
./qtbase/plugins/imageformats/libqico.so
./qtbase/plugins/imageformats/libqjpeg.so
./qtbase/plugins/bearer/libqgenericbearer.so
./qtbase/plugins/generic/libqevdevmouseplugin.so
./qtbase/plugins/generic/libqevdevkeyboardplugin.so
./qtbase/plugins/generic/libqevdevtabletplugin.so
./qtbase/plugins/generic/libqevdevtouchplugin.so
./qtbase/plugins/sqldrivers/libqsqlite.so
./qtbase/plugins/accessible/libqtaccessiblewidgets.so
./qtbase/examples/widgets/tools/plugandpaint/plugins/libpnp_basictools.a
./qtbase/examples/widgets/tools/plugandpaint/plugins/libpnp_extrafilters.so
./qtbase/examples/widgets/tools/plugandpaint/plugins/libpnp_basictools.prl
./qtbase/examples/widgets/tools/echoplugin/plugins/libechoplugin.so
./qtbase/examples/widgets/tools/styleplugin/styles/libsimplestyleplugin.so
./qtbase/lib/libQt5Xml.so.5.3.2
./qtbase/lib/libQt5Gui.so.5.3.2
./qtbase/lib/libQt5PlatformSupport.prl
./qtbase/lib/libQt5Widgets.so.5.3.2
./qtbase/lib/libQt5Xml.la
./qtbase/lib/libQt5Sql.so.5.3.2
./qtbase/lib/libQt5Core.so.5.3.2
./qtbase/lib/libQt5Test.so.5.3.2
./qtbase/lib/libQt5PrintSupport.prl
./qtbase/lib/libQt5Widgets.prl
./qtbase/lib/libQt5PrintSupport.so.5.3.2
./qtbase/lib/libQt5Sql.prl
./qtbase/lib/libQt5PlatformSupport.a
./qtbase/lib/libQt5Network.la
./qtbase/lib/libQt5Sql.la
./qtbase/lib/libQt5Xml.prl
./qtbase/lib/libQt5PrintSupport.la
./qtbase/lib/libQt5Bootstrap.a
./qtbase/lib/libQt5Test.prl
./qtbase/lib/libQt5Gui.prl
./qtbase/lib/libQt5Concurrent.prl
./qtbase/lib/libQt5Network.prl
./qtbase/lib/libQt5Widgets.la
./qtbase/lib/libQt5Bootstrap.la
./qtbase/lib/libQt5Test.la
./qtbase/lib/libQt5Core.prl
./qtbase/lib/libQt5Network.so.5.3.2
./qtbase/lib/libQt5Concurrent.so.5.3.2
./qtbase/lib/libQt5Gui.la
./qtbase/lib/libQt5Core.la
./qtbase/lib/libQt5Concurrent.la
./qtbase/lib/libQt5PlatformSupport.la
./qtbase/lib/libQt5Bootstrap.prl
./qtmultimedia/plugins/playlistformats/libqtmultimedia_m3u.so
./qtmultimedia/plugins/mediaservice/libqtmedia_audioengine.so
./qtmultimedia/examples/multimedia/spectrum/libfftreal.so.1.0.0
./qtmultimedia/examples/multimedia/spectrum/libfftreal.prl
./qtmultimedia/lib/libQt5MultimediaWidgets.la
./qtmultimedia/lib/libQt5Multimedia.so.5.3.2
./qtmultimedia/lib/libQt5MultimediaWidgets.prl
./qtmultimedia/lib/libQt5Multimedia.la
./qtmultimedia/lib/libQt5Multimedia.prl
./qtmultimedia/lib/libQt5MultimediaWidgets.so.5.3.2
./qtwebsockets/lib/libQt5WebSockets.la
./qtwebsockets/lib/libQt5WebSockets.prl
./qtwebsockets/lib/libQt5WebSockets.so.5.3.2
./qtdeclarative/qml/QtQuick/XmlListModel/libqmlxmllistmodelplugin.so
./qtdeclarative/qml/QtQuick/LocalStorage/libqmllocalstorageplugin.so
./qtdeclarative/qml/QtQml/Models.2/libmodelsplugin.so
./qtdeclarative/qml/Qt/labs/settings/libqmlsettingsplugin.so
./qtdeclarative/qml/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so
./qtdeclarative/plugins/qmltooling/libqmldbg_tcp.so
./qtdeclarative/lib/libQt5Qml.so.5.3.2
./qtdeclarative/lib/libQt5QmlDevTools.prl
./qtdeclarative/lib/libQt5Qml.prl
./qtdeclarative/lib/libQt5Qml.la
./qtdeclarative/lib/libQt5QmlDevTools.a
./qtdeclarative/lib/libQt5QmlDevTools.la
./qtconnectivity/lib/libQt5Bluetooth.so.5.3.2
./qtconnectivity/lib/libQt5Nfc.la
./qtconnectivity/lib/libQt5Bluetooth.la
./qtconnectivity/lib/libQt5Nfc.so.5.3.2
./qtconnectivity/lib/libQt5Bluetooth.prl
./qtconnectivity/lib/libQt5Nfc.prl
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_chunk_prc.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_object_prc.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_read.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_dither.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_hlapi.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_prop_xs.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_cms.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_write.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_trace.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_chunk_descr.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_pixels.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_chunk_xs.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_jpeg.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_error.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_display.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_chunk_io.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_filter.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_zlib.o
./qtimageformats/src/plugins/imageformats/mng/.obj/libmng_callback_xs.o
./qtimageformats/plugins/imageformats/libqwebp.so
./qtimageformats/plugins/imageformats/libqtiff.so
./qtimageformats/plugins/imageformats/libqtga.so
./qtimageformats/plugins/imageformats/libqdds.so
./qtimageformats/plugins/imageformats/libqmng.so
./qtimageformats/plugins/imageformats/libqjp2.so
./qtimageformats/plugins/imageformats/libqwbmp.so
./qtimageformats/plugins/imageformats/libqicns.so
./qtsensors/plugins/sensors/libqtsensors_generic.so
./qtsensors/plugins/sensors/libqtsensors_dummy.so
./qtsensors/plugins/sensors/libqtsensors_linuxsys.so
./qtsensors/plugins/sensorgestures/libqtsensorgestures_plugin.so
./qtsensors/plugins/sensorgestures/libqtsensorgestures_shakeplugin.so
./qtsensors/examples/sensors/grue/libgruesensor.prl
./qtsensors/examples/sensors/grue/sensors/libqtsensors_grue.so
./qtsensors/examples/sensors/grue/libgruesensor.so.1.0.0
./qtsensors/lib/libQt5Sensors.prl
./qtsensors/lib/libQt5Sensors.la
./qtsensors/lib/libQt5Sensors.so.5.3.2
./qtlocation/plugins/position/libqtposition_positionpoll.so
./qtlocation/lib/libQt5Positioning.so.5.3.2
./qtlocation/lib/libQt5Positioning.prl
./qtlocation/lib/libQt5Positioning.la
./qtscript/lib/libQt5ScriptTools.la
./qtscript/lib/libQt5ScriptTools.so.5.3.2
./qtscript/lib/libQt5Script.prl
./qtscript/lib/libQt5Script.la
./qtscript/lib/libQt5ScriptTools.prl
./qtscript/lib/libQt5Script.so.5.3.2
./qtxmlpatterns/lib/libQt5XmlPatterns.prl
./qtxmlpatterns/lib/libQt5XmlPatterns.so.5.3.2
./qtxmlpatterns/lib/libQt5XmlPatterns.la
./qttools/lib/libQt5Help.prl
./qttools/lib/libQt5UiTools.a
./qttools/lib/libQt5CLucene.prl
./qttools/lib/libQt5CLucene.so.5.3.2
./qttools/lib/libQt5UiTools.la
./qttools/lib/libQt5CLucene.la
./qttools/lib/libQt5Help.la
./qttools/lib/libQt5Help.so.5.3.2
./qttools/lib/libQt5UiTools.prl
./qtquick1/plugins/qml1tooling/libqmldbg_inspector.so
./qtquick1/plugins/qml1tooling/libqmldbg_tcp_qtdeclarative.so
./qtquick1/examples/declarative/cppextensions/imageprovider/ImageProviderCore/libqmlimageproviderplugin.so
./qtquick1/examples/declarative/cppextensions/plugins/org/qtproject/TimeExample/libqmlqtimeexampleplugin.so
./qtquick1/examples/declarative/cppextensions/qwidgets/QWidgets/libqmlqwidgetsplugin.so
./qtquick1/examples/declarative/tutorials/extending/chapter6-plugins/lib/libchapter6-plugins.so
./qtquick1/examples/declarative/tutorials/gettingStarted/plugins/libFileDialog.so
./qtquick1/examples/declarative/tutorials/gettingStarted/parts/part5/plugins/libFileDialog.so
./qtquick1/imports/Qt/labs/gestures/libqmlgesturesplugin.so
./qtquick1/imports/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so
./qtquick1/imports/Qt/labs/particles/libqmlparticlesplugin.so
./qtquick1/lib/libQt5Declarative.la
./qtquick1/lib/libQt5Declarative.prl
./qtquick1/lib/libQt5Declarative.so.5.3.2 -
@VStevenP said in How to build QtQuick module in older Qt versions:
config.status
#!/bin/sh
if [ "$#" -gt 0 ]; then
/home/parallels/Documents/qt-everywhere-opensource-src-5.3.2/qtbase/configure -prefix /home/parallels/Documents/qt-everywhere-opensource-src-5.3.2/qtbase -opensource -confirm-license -nomake tests -no-pch -xplatform linux-buildroot-arm-uclibcgnueabi-g++ -release -qt-libjpeg -qt-libpng -no-opengl -skip qtwebkit "$@"OpenGL is a requirement for Qt Quick 2 with this release.
https://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/src.pro?h=5.3#n6:qtHaveModule(gui):contains(QT_CONFIG, opengl(es1|es2)?) {
SUBDIRS +=
quick
qmltest
particlesqtHaveModule(widgets): SUBDIRS += quickwidgets
}
The software renderer arrived several minor releases later. If Qt 5.3.2 without OpenGL is a real requirement, Qt Quick 1 (aka QtDeclarative) is available.
-
@jeremy_k That is a golden nugget of information right there . Thank you.
In Qt 5.3.2, the only thing that was seemingly requiring me to list the quick module in the pro file my app was my use of QQuickItem. I was trying to inherit from QQuickItem and expose that class to QML via qmlRegisterType(). When I did not try to inherit from QQuickItem and expose that class to QML, my app was actually working on an ARM hardware that has no GPU using Qt 5.3.2. Perhaps it was falling back to QtQuick1 for software rendering even though all my QML imports were for QtQuick 2.0.
Thanks very much for your thoughts.
-
I am unaware of any fallback mechanism from Quick 2 to Quick 1. Version 1 was implemented on top of the graphics view stack, which in turn uses widgets. The libraries an application would link to are different. Failing to account for that should lead to a build failure. By any chance is this application using a software OpenGL implementation?
Changes to the QML language and Quick items are covered in the QtDeclarative link about, with a focus on moving from version 1 to 2. They aren't significant. Going the other direction could be harder.
-
@jeremy_k OK, I think I understand now. Please correct me if I am wrong.
-
If I need to use QtQuick 2 and also need the Qt Quick 2D Renderer (due to no GPU) , it looks like I need to use Qt 5.7 or higher, because that's when the Qt Quick 2D Renderer became available. (I could configure with -no-opengl and -linuxfb, for example.)
-
If I want to use QtQuick2 with OpenGL ES2 (due to GPU with Open GL ES2 support), I could use Qt 5.0 or higher. (I could configure with -opengl es2, and also possibly -eglfs for full-screen/single surface if needed.)
-
-
@VStevenP said in How to build QtQuick module in older Qt versions:
@jeremy_k OK, I think I understand now. Please correct me if I am wrong.
- If I need to use QtQuick 2 and also need the Qt Quick 2D Renderer (due to no GPU) , it looks like I need to use Qt 5.7 or higher, because that's when the Qt Quick 2D Renderer became available. (I could configure with -no-opengl and -linuxfb, for example.)
- If I want to use QtQuick2 with OpenGL ES2 (due to GPU with Open GL ES2 support), I could use Qt 5.0 or higher. (I could configure with -opengl es2, and also possibly -eglfs for full-screen/single surface if needed.)
Either of those might work.
Another option is one of the Mesa software OpenGL drivers. They will be slower and consume more CPU time than a hardware assisted driver, but may be adequate.
Are you tied to an OS or compiler that had support dropped in more recent Qt releases? After solving this problem, there will be a line of others that have been addressed in newer versions.