Revision control

Copy as Markdown

// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page packaging-recommendations.html
\title Qt Packaging Recommendations
Distributions might want to package multiple different Qt versions. By
taking the example of a Linux distribution, we recommend the following
approach:
\list
\li Configure Qt to install executables to \c{/usr/qt6/bin}.
\li Create symlinks with version suffixes in \c{/usr/bin} to user-facing
applications that reside in \c{/usr/qt6/bin}. For example, create the
symlink \c{/usr/bin/designer6} that points to \c{/usr/qt6/bin/designer}.
\endlist
User-facing applications are Qt tools that are supposed to be started by the
user. This includes qmake, \QD, \QL, and others. Other
tools, such as moc, rcc, and uic are usually not manually invoked by the
user but from the build system of user projects.
In Qt's build system, tools that we consider as user-facing are marked as
such, and that information can be extracted and used as follows.
Configure Qt with the CMake arguments:
\badcode
-DCMAKE_INSTALL_PREFIX=/usr
-DINSTALL_BINDIR=/usr/qt6/bin
-DINSTALL_PUBLICBINDIR=/usr/bin
\endcode
This will create a file called \c{user_facing_tool_links.txt} in Qt's build
directory. It contains on each line the path of a user-facing tool in
\c{INSTALL_BINDIR} and, separated by one space, the path to the versioned
link in \c{INSTALL_PUBLICDIR}.
This file can be used to create all versioned symlinks:
\badcode
xargs ln -s < user_facing_tool_links.txt
\endcode
*/