// Copyright (C) 2024 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only /*! \page getting-sources-from-git.html \title Getting Qt Sources from the Git repository \brief This section describes how to clone and initialize Qt from Git \section1 Introduction This section describes how to get the Qt sources through the Git version control system. This is useful in software development processes that already use Git and when testing different Qt versions. It is also essential if you plan to contribute to Qt. \note Qt sources can also be installed using \QOI, downloaded as archives from the \l{Qt Account} (commercial users), or from \l{https://download.qt.io}{download.qt.io} (open-source users). Qt is developed and maintained in several Git submodules tied together in a \c{qt5} super module. Getting the Qt sources from Git involves cloning the top-level Git repository via the Git command line and initializing the submodules using the Qt \c{configure} command. \note Qt 5 and Qt 6 share the same repository, and you will work against the \c{qt5} repository even if you use Qt 6. \section1 Preparations Start by reviewing \l {Building Qt Sources} and the requirements section for your platform to make sure all prerequisites have been installed. In addition, you will need a recent version of Git. When planning where to clone the Qt sources, keep in mind that Qt supports out-of-source builds, where the source code resides separately from build artifacts. This keeps the Git clone clean and makes it possible to build different versions of Qt from the same source tree. In this overview, the directory containing the Qt sources is referred to as \c{qt-sources}, while the one containing build artifacts is referred to as \c{qt-build}. \section1 Cloning the Qt Git repository Begin by creating the \c{qt-sources} directory. From within this directory, use Git to clone the sources. In the following, we will use the Git command line interface. Be aware of the trailing '.' character indicating that Qt is cloned into the current directory. \badcode \QtVersion git clone --branch v\1 git://code.qt.io/qt/qt5.git . \endcode You can also use the https protocol. \badcode \QtVersion git clone --branch v\1 https://code.qt.io/qt/qt5.git . \endcode To test out the latest development version, omit the \c{--branch} argument. \section1 Initializing the Qt submodules Next, create the build directory \c{qt-build}. Within this directory, run the \l{Qt Configure Options}{configure} command with the \c{-init-submodules} option. \badcode qt-sources/configure -init-submodules \endcode This will recursively initialize all Qt submodules in your \c{qt-sources} directory, which might take some time. Note that \c{-init-submodules} can be combined with other \l{Qt Configure Options}{configure} arguments. If you know the Qt submodules you will work with, reduce the configuration time by using the \c{-submodules} argument. \badcode qt-sources/configure -init-submodules -submodules qtdeclarative \endcode This will initialize \c{qtdeclarative} and required submodules. \section1 Building Qt With Qt sources set up, proceed to build Qt for your platform as outlined in \l {Building Qt Sources}. The \c{-init-repository} argument is only required during the initial Qt configuration and after switching branches. \section1 Contributing to Qt For those planning to contribute to Qt, specify the \c{-codereview-username} the first time you configure Qt. \badcode qt-sources/configure -init-submodules -codereview-username \endcode For more information on contributing to Qt and creating a Gerrit username, consult the \l{https://contribute.qt-project.org/}{The Qt Project} homepage. */