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: squish-x.y.z-qt-embedded-src.zip

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 /usr/local/qt:

  1. 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
  2. Prepare the Squish build by running the configure script. 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 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
  3. After the configure run has finished, you can start the build process:
    $ ./build
  4. 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