summaryrefslogtreecommitdiffstats
path: root/doc/installerfw-getting-started.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/installerfw-getting-started.qdoc')
-rw-r--r--doc/installerfw-getting-started.qdoc133
1 files changed, 100 insertions, 33 deletions
diff --git a/doc/installerfw-getting-started.qdoc b/doc/installerfw-getting-started.qdoc
index e77012f95..1a86953a7 100644
--- a/doc/installerfw-getting-started.qdoc
+++ b/doc/installerfw-getting-started.qdoc
@@ -1,7 +1,7 @@
/****************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
+** Copyright (C) 2024 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Installer Framework.
**
@@ -32,22 +32,17 @@
\title 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.
+ You can use the Qt Installer Framework to create installation programs for
+ all kinds of applications, including (but not limited to) applications built
+ with Qt.
\section1 Supported Platforms
You can use the Qt Installer Framework to create installers for all
- platforms supported by \l[QtDoc]{Supported Platforms}{desktop Qt}.
+ platforms supported by \l{https://doc.qt.io/qt-6/supported-platforms.html}{desktop Qt}.
- The installers have been tested on the following platforms:
-
- \list
- \li Microsoft Windows 7, and later
- \li Ubuntu Linux 16.04, and later
- \li macOS 10.12, and later
- \endlist
+ If you use Linux, install also
+ \l {https://doc.qt.io/qt-6/linux-requirements.html} {Platform Plugin dependencies}.
\section1 Building from Sources
@@ -57,61 +52,133 @@
\section2 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.
+ You can compile the Qt Installer Framework with Microsoft Visual Studio
+ 2019 and newer, GCC 9 and newer, and Clang 13.0.0 and newer. Currently, the
+ tested combination for Windows is Qt 6.6.0 with MSVC 2019 (Windows 10).
\section2 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.
+ installers as one file. For more information about statically linking
+ against OpenSSL libraries, see \l{http://doc.qt.io/qt-6/ssl.html}{SSL
+ Import and Export Restrictions}.
- The supported Qt version is 5.12.7.
+ The supported Qt version is 6.6.0.
+
+ Get Qt sources:
+ \code
+ \l{https://wiki.qt.io/Building_Qt_6_from_Git}{Get Qt sources from git}.
+ Call init-repository with --module-subset=qt5compat, qtbase, qtdeclarative, qttools, qttranslations
+ \endcode
\section3 Configuring Qt for Windows
- We recommend that you use the following options when you configure Qt for
- Windows:
+ Use the following configuration options for Windows:
\code
configure -prefix %CD%\qtbase -release -static -static-runtime -accessibility -no-icu -no-sql-sqlite -no-qml-debug -nomake examples -nomake tests
\endcode
- Build Qt:
+ \section3 Configuring Qt for Linux
+
+ Use the following configuration options for Linux:
+
\code
- nmake (or 'mingw32-make') module-qtbase module-qtdeclarative module-qttools module-qttranslations module-qtwinextras
+ 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
\endcode
- \section3 Configuring Qt for Linux
+ \section3 Configuring Qt for macOS
- We recommend that you use the following configuration options for Linux:
+ Use the following configuration options for macOS:
\code
- 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 -no-cups -no-sql-sqlite -no-qml-debug -nomake examples -nomake tests -no-freetype
\endcode
Build Qt:
\code
- make module-qtbase module-qtdeclarative module-qttools module-qttranslations
+ cmake --build . --parallel
+ cmake --install .
\endcode
- \section3 Configuring Qt for macOS
+ \section2 Third Party Dependencies
- We recommend that you use the following configuration options for macOS:
+ The Qt Installer Framework sources contain a redistribution of parts of the
+ \c libarchive compression and archive library, which requires you to link
+ against the following libraries; \c liblzma, \c zlib, \c libbzip2, and on
+ macOS, \c libiconv.
+
+ To enable the use of \c libarchive, add the \c libarchive configuration
+ feature to the list of values specified by the \c CONFIG variable.
+ Installers created with this configuration support the creating and
+ extracting of 7zip, zip, and tar archive files, with \c gzip, bzip2, and
+ \c xz as available compression methods.
\code
- 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
+ qmake CONFIG+=libarchive
\endcode
- Build Qt:
+ You can use the \c IFW_ZLIB_LIBRARY, \c IFW_BZIP2_LIBRARY, \c IFW_LZMA_LIBRARY, and \c IFW_ICONV_LIBRARY
+ variables to specify the exact library files.
+
+ If you add the \c{-qt-zlib} configuration to the Qt version used to build the Qt Installer Framework, and
+ \c IFW_ZLIB_LIBRARY variable is empty, \c libarchive will try to use the \c zlib library compiled
+ into the QtCore module, which removes the need for an external library.
+
+ If you do not enable \c libarchive support, the builtin LZMA SDK library will act as a fallback and
+ installation of the extra dependencies will not occur, but created installers will
+ only support the 7zip format.
+
+ \note Building IFW with LZMA SDK is deprecated and may not be available in future versions.
+
+ \section3 Installing Dependencies for Windows
+
+ You can download the source archives for the dependencies from:
+
+ \list
+ \li \l https://tukaani.org/xz/
+ \li \l https://zlib.net/
+ \li \l https://www.sourceware.org/bzip2/
+ \endlist
+
+ 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).
+
+ \section3 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:
+
\code
- make module-qtbase module-qtdeclarative module-qttools module-qttranslations
+ sudo apt install zlib1g-dev liblzma-dev libbz2-dev
\endcode
+ \section3 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 \c liblzma library.
+
+ On Homebrew this would be:
+
+ \code
+ brew install xz
+ \endcode
+
+ \section3 Troubleshooting
+
+ For \c libarchive related compilation errors, you may need to edit the definitions in
+ a configuration header file respective to your platform. You can find this file in
+ the \c src/libs/3rdparty/libarchive/config/ directory of the Installer Framework sources.
+
+
\section2 Setting up Qt Installer Framework
\list 1