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

// **********************************************************************
// NOTE: the sections are not ordered by their logical order to avoid
// reshuffling the file each time the index order changes (i.e., often).
// Run the fixnavi.pl script to adjust the links to the index order.
// **********************************************************************

/*!
    \contentspage index.html
    \previouspage qt-design-viewer.html
    \page creator-building-targets.html
    \nextpage creator-running-targets.html

    \title Building for Multiple Platforms

    You can build applications for multiple target platforms, or using different
    compilers, debuggers or Qt versions. \l{glossary-buildandrun-kit}{Kits}
    define the tools, \l{glossary-device}{device} type and other settings to use.

    By default, when you run the application, you
    automatically build and deploy it first.
    However, you can also perform each operation separately.

    To check that the application code can be compiled and linked for a device,
    you can build the project. The build errors and warnings are displayed in
    the \uicontrol {Issues} output pane. More detailed information is displayed
    in the \uicontrol {Compile Output} pane.

    To build an application:

    \list 1

        \li  Click the \uicontrol {Build and Run Kit Selector} icon (1) or select
             \uicontrol Build > \uicontrol {Open Build and Run Kit Selector} to select the
             build and run \l{glossary-buildandrun-kit}{kit}.

        \image qtcreator-kit-selector.png "Kit selector"

        \li  Choose \uicontrol {Build > Build Project} or press \key {Ctrl+B}.

             You can also select the \uicontrol Run button (2) to also deploy and run
             the application after building it.

    \endlist

    While the application is being built, the \uicontrol Build button changes to
    a \uicontrol {Cancel Build} button (3). To cancel the build, select the
    button or press \key {Alt+Backspace}. If you selected a build command and
    decide you would also like to run the application, you can select the
    \uicontrol Run button to schedule running the project after building is done.

    For more information on the options you have, see
    \l{Specifying Build Settings}.

    \section1 Additional Build Commands

    To build all open projects, select \uicontrol Build > \uicontrol {Build All}.
    If building one application fails, \QC displays an error message and
    continues building the other applications.

    To quickly check the compile output for changes that you made in one file or
    subproject, you can use the \uicontrol Build menu commands to build a file or
    subproject. The available build menu commands depend on the build system
    you selected for the project: CMake, qmake, or Qbs.

    Select \uicontrol Build > \uicontrol {Build for Run Configuration} to
    build the executable that corresponds to the selected run configuration.
    You can also use the \c cm filter in the \l {Searching with the Locator}
    {locator}.

    To remove all build artifacts, select \uicontrol Build > \uicontrol {Clean All} or
    \uicontrol {Clean Project}. To clean the build directory and then build
    the project, select \uicontrol Build > \uicontrol {Rebuild All} or
    \uicontrol {Rebuild Project}.

    To build and clean projects without dependencies, select the
    \uicontrol {Build Without Dependencies},
    \uicontrol {Rebuild Without Dependencies}, and
    \uicontrol {Clean Without Dependencies} options in the context menu in the
    \uicontrol Projects view.

    To run qmake or CMake to regenerate build system files, select
    \uicontrol Build > \uicontrol {Run qmake} or \uicontrol {Run CMake}.

    \section2 Building with CMake

    \QC automatically runs CMake when you make changes to \c {CMakeLists.txt}
    files. To disable this feature, select \uicontrol Tools >
    \uicontrol Options > \uicontrol Kits > \uicontrol CMake >
    \uicontrol {Autorun CMake}.

    For more information, see \l {Setting Up CMake}.

    \section2 Building with qmake

    To prevent failures on incremental builds, it might make sense
    to always run qmake before building, even though it means that
    building will take more time. To enable this option, select \uicontrol Tools
    > \uicontrol Options > \uicontrol {Build & Run} > \uicontrol qmake >
    \uicontrol {Run qmake on every build}.
*/
