summaryrefslogtreecommitdiffstats
path: root/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL90
1 files changed, 80 insertions, 10 deletions
diff --git a/INSTALL b/INSTALL
index 9adeea4c6..dd7d78cd8 100644
--- a/INSTALL
+++ b/INSTALL
@@ -15,15 +15,15 @@ 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 5.12.7.
-Supported compilers are MSVC 2013 or newer, GCC 4.7 or newer,
-and Clang 3.1 or newer. Currently, the tested combination for Windows is Qt 5.12.7 with MSVC 2015.
+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 Clang 13.0.0 or newer. Currently, the tested combination for Windows is Qt 6.6.0 with MSVC 2019 (Windows 10).
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-5/ssl.html if
+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
@@ -32,25 +32,95 @@ 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:
-nmake (or 'mingw32-make') module-qtbase module-qtdeclarative module-qttools module-qttranslations module-qtwinextras
+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-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
+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-xinput2 -no-sm -no-icu -nomake examples -nomake tests -no-libudev -bundled-xcb-xinput -qt-harfbuzz -qt-doubleconversion
+
Build Qt:
-make module-qtbase module-qtdeclarative module-qttools module-qttranslations
+cmake --build . --parallel
+cmake --install .
### macOS
Recommended 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
+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:
-make module-qtbase module-qtdeclarative module-qttools module-qttranslations
+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.
+
+The usage of libarchive is recommended 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 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.
+
+If you do not enable libarchive support, the builtin LZMA SDK library will be used as a
+fallback and installation of the additional dependencies can be skipped, but created
+installers will only support the 7zip format. Note that building IFW with LZMA SDK is
+deprecated and may not be available in future versions.
+
+### 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 18.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 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.
Build the Framework
---------------------
-Run 'qmake && make' (or 'mingw32-make', 'nmake' ...) to build the Qt Installer
+Run 'qmake && make' (or 'nmake' ...) to build the Qt Installer
Framework. The documentation can be generated by 'make docs'.