// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
\page build-sources.html
\title Building Qt Sources
\brief Building Qt from the source packages

You can install Qt by building Qt sources. This is useful if, for example:

\list
    \li You need a custom build (for example, with patches or debug options).
    \li Your platform isn't supported by pre-built packages.
    \li You're contributing to Qt or debugging its internals.
\endlist

\note In most use cases, other than those listed above, the best way to install Qt is with \QOI.
See \l{Get and Install Qt with Qt Online Installer}.

The installation procedure is different on each Qt platform. This page provides relevant
information for the supported platforms and links to module-specific system requirements.

\section1 General Installation Information

When you build Qt sources, you use the \e configure tool to configure Qt for a particular
platform with a particular set of Qt features or modules. For more information,
see \l{Qt Configure Options}.

\section2 The Build and Installation Process

A brief overview of the build and installation process:

\list 1
  \li Download the Qt source code and set up the initial environment.
  \li Configure the build according to the use case, such as development on the host
      system or cross-compilation for a target platform.
  \li Build (compile) in a separate directory.
  \li Optional. Install the built artifacts.
\endlist

\section1 Platform-Specific Installation Information

\section2 Windows

\list
\li \l{Qt for Windows - Building from Source}
\endlist

\section2 \macos

\list
\li \l{Qt for macOS - Building from Source}
\endlist

\section2 Linux/X11

\list
\li \l{Qt for X11 Requirements}
\li \l{Qt for Linux/X11 - Building from Source}
\endlist

\section2 Embedded Linux

\list
    \li \l{Configure an Embedded Linux Device}
    \li \l{Qt for Embedded Linux}
\endlist

\section2 Android

\list
\li \l {Qt for Android - Building from Source}
\endlist

\section2 iOS

\list
\li \l {Qt for iOS - Building from Source}
\endlist

\section2 Module-specific System Requirements

\list
    \li \l {Qt WebEngine Platform Notes} {Building Qt WebEngine from Source}
    \li \l [QtQuick3D] {Building From Source}
           {Building Qt Quick 3D from Source}
    \li \l {Building Qt Multimedia from sources}{Building Qt Multimedia from Source}
    \li \l [QtGRPC] {Module prerequisites}{Qt GRPC and Qt Protobuf Module Requirements}
\endlist

\section1 Additional Information

The top-level qt5 Git repository contains a set of build instructions in the
form of \e {provisioning scripts}, used by Qt's continuous integration (CI)
system to build and test the \l {Supported Platforms}. These
scripts are useful for anyone building Qt from source, as they provide
information on the tools and components that are required for each
configuration.

\list
    \li \l {Building Optimized Qt}
    \li \l {https://code.qt.io/cgit/qt/qt5.git/tree/coin?h=\qtver}
           {qt/qt5.git CI provisioning for Qt \qtver}
    \li \l {https://wiki.qt.io/CI_Overview}{CI Overview in Qt Wiki}
    \li \l {https://wiki.qt.io/Building_Qt_Documentation}
           {Building Qt Documentation}
\endlist
*/
