Installing Squish for Qt from Embedded Source Packages
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, and so on, 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, you can get help with adaptions to the configuration of Squish, as described in Squish for Qt Embedded SDK & Support Package.
The file name of the source package suitable for compilation to target system will follow this naming scheme:
First, install a standard Squish for Qt desktop package. 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, compile the Squish components that will run on the embedded device 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.
In the following instructions, the Squish source package has been unpacked into the directory
/home/user/squish-src and the Qt installation is found in the directory
- Create a build directory for Squish, which should be different from the Squish source directory:
$ mkdir /home/user/squish-build $ cd /home/user/squish-build
- Prepare the Squish build by running the
configurescript. In the simplest case, run 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 in a special environment (e.g. for OpenEmbedded or QNX) or when qmake lacks a configuration for the cross-compiling environment, you may need to tell the Squish build system which compiler and which additional flags to use for the target system. For this purpose, you can pass any of the following variables 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
configurescript is not called with the
$ /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, you can start the build process:
- Finally, to copy as little as possible to the target device, you can install all the necessary Squish files into a separate directory. You can then copy this directory to the target device:
$ ./build install DESTDIR=path-to-squish-distribution-directory