How to build ===================== The instructions should help you build the Installer Framework from scratch. Alternatively, you can use prebuilt binaries which are available in Qt Online Installer. Get the sources --------------------- Use Git to check out the Qt Installer Framework sources that are hosted at: http://code.qt.io/cgit/installer-framework/installer-framework.git/ Build a static Qt --------------------- Building the Qt Installer Framework from sources requires at least Qt version 6.6.0. Supported compilers are MSVC 2019 or newer, GCC 9 or newer, and Xcode 14 or newer. Currently, the tested combination for Windows is Qt 6.7.2 with MSVC 2019 (Windows 11). If you want to ship your installer as a single file you have to build Qt and the Qt Installer Framework statically. See the Qt documentation for the prerequisites and steps to build Qt from sources. Please read SSL Import and Export Restrictions from http://doc.qt.io/qt-6/ssl.html if you are statically linking against OpenSSL libraries. ### Windows Recommended configuration options for Microsoft Windows: configure -prefix %CD%\qtbase -release -static -static-runtime -accessibility -no-icu -no-sql-sqlite -no-qml-debug -nomake examples -nomake tests Build Qt: cmake --build . --parallel cmake --install . ### Linux Recommended configuration options for Linux: configure -prefix $PWD/qtbase -release -static -accessibility -qt-zlib -qt-libpng -qt-libjpeg -qt-pcre -no-glib -no-cups -no-sql-sqlite -no-feature-gssapi -no-qml-debug -no-opengl -no-egl -no-sm -no-icu -nomake examples -nomake tests -no-libudev -bundled-xcb-xinput -qt-harfbuzz -qt-doubleconversion Build Qt: cmake --build . --parallel cmake --install . ### macOS Recommended configuration options for macOS: configure -prefix $PWD/qtbase -release -static -accessibility -qt-zlib -qt-libpng -no-cups -no-sql-sqlite -no-qml-debug -nomake examples -nomake tests -no-freetype Build Qt: cmake --build . --parallel cmake --install . Third party dependencies --------------------- 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. This enables support for (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 the Qt version used to build the Qt Installer Framework was configured with -qt-zlib and IFW_ZLIB_LIBRARY variable is empty, libarchive will attempt to use the zlib library compiled into the QtCore module, which removes the need for an external library. ### Windows The liblzma, zlib, libbzip2 libraries are required. The source archives can be downloaded from: https://tukaani.org/xz/ https://zlib.net/ https://www.sourceware.org/bzip2/ 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). ### Linux The required third party compression libraries are likely available from your distribution's package manager repositories. For example, on Ubuntu 22.04 you can invoke the following to install the missing development packages: $ sudo apt install zlib1g-dev liblzma-dev libbz2-dev ### macOS The easiest way to install the missing libraries is with a third party package manager solution, like Homebrew or MacPorts. On macOS 11 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. Build the Framework --------------------- Run 'qmake && make' (or 'nmake' ...) to build the Qt Installer Framework. The documentation can be generated by 'make docs'.