1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
|
/****************************************************************************
**
** Copyright (C) 2024 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Installer Framework.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\previouspage index.html
\page ifw-getting-started.html
\nextpage ifw-overview.html
\title Getting Started
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.
To get started with Qt Installer Framework:
\list 1
\li Install a pre-built version with \QOI or build the framework from
sources. For more information, see \l{Installation} and
\l{Building from Sources}.
\li Choose the installer type: \e online or \e offline. For more
information, see \l{Overview of Qt Installer Framework}.
\li Follow the tutorial to create an installer. For more information, see
\l{Tutorial: Creating an Installer}.
\li Use the examples to learn how to use component scripts for
customizing installers. For more information, see
\l{Tutorials and Examples}.
\endlist
*/
/*!
\previouspage ifw-overview.html
\page ifw-installation.html
\nextpage ifw-building-from-sources.html
\title Installation
You can use \l{https://doc.qt.io/qt-6/get-and-install-qt.html}{\QOI} to
install a pre-built version of the \IFW, or you can build it yourself from
sources.
\image ifw-installation.webp {Installing with Qt Online Installer}
\section1 Supported Platforms
You can use the Qt Installer Framework to create installers for all
platforms supported by \l{https://doc.qt.io/qt-6/supported-platforms.html}{desktop Qt}.
If you use Linux, install also
\l {https://doc.qt.io/qt-6/linux-requirements.html} {Platform Plugin dependencies}.
\sa {Building from Sources}
*/
/*!
\previouspage ifw-installation.html
\page ifw-building-from-sources.html
\nextpage ifw-use-cases.html
\title Building from Sources
The following steps describe how to build the Qt Installer Framework
yourself.
For more information about how to install a pre-built version, see
\l{Installation}.
\section1 Supported Compilers
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).
\section1 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. 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 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
\section2 Configuring 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
\section2 Configuring Qt for Linux
Use the following configuration options for Linux:
\code
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
\section2 Configuring Qt for macOS
Use the following configuration options for macOS:
\code
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
cmake --build . --parallel
cmake --install .
\endcode
\section1 Third Party Dependencies
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.
This enables support of creating and extracting 7zip, zip, and tar archive
files, with \c gzip, bzip2, and \c xz as available compression methods.
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.
\section2 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).
\section2 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
sudo apt install zlib1g-dev liblzma-dev libbz2-dev
\endcode
\section2 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
\section2 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.
\section1 Setting up Qt Installer Framework
\list 1
\li Clone the Qt Installer Framework source code from
\l{http://code.qt.io/cgit/installer-framework/installer-framework.git/}
to get the sources for the tools.
\li Build the tools by running the "qmake" from the static Qt, followed by "make" or "nmake".
\endlist
\note To contribute patches to Qt Installer Framework, follow the standard
Qt processes and guidelines. For more information, see
\l{http://wiki.qt.io/Contribute}{Contribute to Qt}.
\sa {Installation}
*/
|