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, 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:

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.

  1. 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
  2. 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
  3. After the configure run has finished, the build process can be started:
                $ ./build
  4. 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

© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.