/****************************************************************************
**
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $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$
**
****************************************************************************/

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

There are two ways to install Qt:
\list 1
\li through the \e {Qt Installers} - downloads and installs Qt
\li through the \e{Qt sources}.
\endlist

You can download the Qt 5 installers and sources from the \l Downloads page.
For more information, visit the \l{Getting Started with Qt} page.

This page lists the relevant information for installing Qt by building the Qt
sources. The installation procedure is different on each Qt platform. This page
collects the relevant information for the \l{Supported Platforms}
{supported platforms}.

\section1 General Installation Information

Building Qt revolves around using \c configure to configure Qt for a particular
platform with a particular set of Qt features or modules. For more information,
visit the following page:

\list
\li \l{Qt Configure Options}
\endlist

\section1 Windows

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

\section1 \macos

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

\section1 Linux/X11

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

\section1 Embedded Linux

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

\section1 Android

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

\section1 iOS

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

\section1 Universal Windows Platform (UWP)

\list
\li \l {Qt for UWP#Building from source}{Qt for UWP - Building from Source}
\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 supported \l {Reference Configurations}. 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 {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}
\endlist
*/
