Customers targeting an embedded device, i.e. a platform other than their local system are offered a source package featuring the capability to cross-compile a minimal set of Squish components for QNX, Android, VxWorks, Embedded Linux, etc. running on ARM, MIPS, PPC and other hardware architectures.
As Qt installations on embedded systems often use non-standard configurations or non-standard library names or locations froglogic engineers will help with adaptions to the configuration of Squish. See the description of the Squish for Qt Embedded SDK & Support Package for more details.
The file name of the source package suitable for compilation to target
system will follow this naming scheme:
squish-x.y.z-qt-embedded-src.zip
First, a standard Squish for Qt desktop package needs to be installed. This provides the Squish IDE as well as squishrunner. Ideally, this package targets the same major Qt version as the embedded build generated below.
Second, the Squish components which will run on the embedded device will need to
be compiled from a special Squish/Qt embedded source package, e.g.
squish-6.6.1-qt-embedded-src.tar.gz
. The source files will be
cross-compiled for the target system.
It it assumed that the Squish source package has been unpacked into the
directory /home/user/squish-src
. It is also
assumed that your Qt installation is found in the directory /usr/local/qt
.
Start by creating a build directory for Squish, which should be different than the Squish source directory.
$ mkdir /home/user/squish-build $ cd /home/user/squish-build
Now, prepare the Squish build by running the configure
script. In the
simplest case, this is a matter of running a single command.
$ /home/user/squish-src/configure --with-qmake=/usr/local/qt/bin/qmake --enable-qmake-config --with-squishidl=<path-to-squish-desktop-package>/bin/squishidl --disable-all --enable-qt --enable-server
However, when building for the device needs to be done in a special environment (e.g. for OpenEmbedded or QNX) or when qmake lacks a configuration for the cross-compiling environment then it may be needed to tell the Squish build system about which compiler and which additional flags to use for the target system. For this purpose, any of the following variables can be passed to configure:
CXX=<Name or path to target C++ compiler>
CXXFLAGS=<Initial arguments for target C++ compiler>
LFLAGS=<Initial arguments for target linker>
In this case, the command sequence is a bit different and the
configure
script is not called with the
--enable-qmake-config
switch:
$ /home/user/squish-src/configure "CXX=<your-target-c++-compiler>" --with-qmake=/usr/local/qt/bin/qmake --with-squishidl=<path-to-squish-desktop-package>/bin/squishidl --disable-all --enable-qt --enable-server
After the configure run has finished, the build process can be started:
$ ./build
Finally, to copy as little as possible to the target device, all needed Squish files can be installed into a separate directory. This directory can then be copied over to the target device:
$ ./build install DESTDIR=<path-to-squish-distribution-directory>