Getting Started

Qt Installer Framework is developed as part of the Qt project. The framework itself uses Qt. However, it can be used to install all kind of applications, including (but not limited to) applications built with Qt.

Supported Platforms

You can use the Qt Installer Framework to create installers for all platforms supported by desktop Qt.

The installers have been tested on the following platforms:

  • Microsoft Windows 7, and later
  • Ubuntu Linux 16.04, and later
  • macOS 10.12, and later

Building from Sources

The following steps describe how to build the Qt Installer Framework yourself. You can skip this if you have downloaded a pre-built version of the framework.

Supported Compilers

The Qt Installer Framework can be compiled with Microsoft Visual Studio 2013 and newer, GCC 4.7 and newer, and Clang 3.1 and newer. Currently, the tested combination for Windows is Qt 5.12.4 with MSVC 2015.

Configuring Qt

If you use a statically built Qt to build the Qt Installer Framework you do not have to deliver Qt libraries, which enables you to distribute installers as one file. Please read SSL Import and Export Restrictions from http://doc.qt.io/qt-5/ssl.html if you are statically linking against OpenSSL libraries.

The supported Qt version is 5.12.7.

Configuring Qt for Windows

We recommend that you use the following options when you configure Qt for Windows:

configure -prefix %CD%\qtbase -release -static -static-runtime -accessibility -no-icu -no-sql-sqlite -no-qml-debug -nomake examples -nomake tests

Build Qt:

nmake (or 'mingw32-make') module-qtbase module-qtdeclarative module-qttools module-qttranslations module-qtwinextras

Configuring Qt for Linux

We recommend that you use the following configuration options for Linux:

configure -prefix $PWD/qtbase -release -static -accessibility -qt-zlib -qt-libpng -qt-libjpeg -qt-xcb -qt-pcre -no-glib -no-cups -no-sql-sqlite -no-qml-debug -no-opengl -no-egl -no-xinput2 -no-sm -no-icu -nomake examples -nomake tests -no-libudev

Build Qt:

make module-qtbase module-qtdeclarative module-qttools module-qttranslations

Configuring Qt for macOS

We recommend that you use the following configuration options for macOS:

configure -prefix $PWD/qtbase -release -static -no-securetransport -accessibility -qt-zlib -qt-libpng -qt-libjpeg -no-cups -no-sql-sqlite -no-qml-debug -nomake examples -nomake tests -no-freetype

Build Qt:

make module-qtbase module-qtdeclarative module-qttools module-qttranslations

Configuring Support for Archive File Formats

The Qt Installer Framework sources contain a redistribution of parts of the libarchive compression and archive library, which requires you to link against additional libraries; liblzma, zlib, libbzip2, and on macOS, libiconv.

The usage of libarchive is optional and can be enabled by adding the libarchive configuration feature to the list of values specified by the CONFIG variable. Installers created with this configuration support the (de)compression of 7zip, zip, and tar archive files, with gzip, bzip2, and xz as available compression methods.

The IFW_ZLIB_LIBRARY, IFW_BZIP2_LIBRARY, IFW_LZMA_LIBRARY, and IFW_ICONV_LIBRARY variables can be used to specify the exact library files if required.

If you omit the feature, the installation of the additional dependencies can be skipped, but created installers will only support the 7zip format.

qmake CONFIG+=libarchive

Installing Dependencies for Windows

The source archives for the dependencies can be downloaded from:

When building the third party libraries with MSVC, make sure to use the same version that you used to build Qt, and that the compiler option used to select the run-time library matches the configuration options for Qt (debug/release, static/dynamic runtime).

Installing Dependencies for Linux

The required third party compression libraries are likely available from your distribution's package manager repositories.

For example, on Ubuntu 18.04 you can invoke the following to install the development packages containing headers for the libraries:

sudo apt install zlib1g-dev liblzma-dev libbz2-dev

Installing Dependencies for macOS

The easiest way to install the missing libraries is with a third party package manager solution, like Homebrew or MacPorts. On macOS 10.15 you should only need to additionally install the liblzma library.

On Homebrew this would be:

brew install xz

Troubleshooting

For libarchive related compilation errors, you may need to edit the definitions in a configuration header file respective to your platform, which can be found from the 'src/libs/3rdparty/libarchive/config/' directory of the Installer Framework sources.

Setting up Qt Installer Framework

  1. Clone the Qt Installer Framework source code from http://code.qt.io/cgit/installer-framework/installer-framework.git/ to get the sources for the tools.
  2. Build the tools by running the "qmake" from the static Qt, followed by "make" or "nmake".

Note: To contribute patches to Qt Installer Framework, follow the standard Qt processes and guidelines. For more information, see Contribute to Qt.

© 2021 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. The Qt Company, Qt and their 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.