/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
**
** $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$
**
****************************************************************************/
/*!
    \previouspage Profile
    \nextpage Properties
    \qmltype Project
    \inqmlmodule QbsLanguageItems
    \ingroup list-of-items
    \keyword QML.Project

    \brief Represents a collection of products and properties.

    A Project item represents a collection of of products. In a
    non-trivial project, these products are typically defined in their own files and
    referenced in the main project file:
    \code
    Project {
        references: [
            "product1/product1.qbs",
            "product2/product2.qbs"
        ]
    }
    \endcode
    Any property \c prop attached to this item is available in sub-items as \c project.prop.

    While the root of the item hierarchy is always a Project, this kind of item
    can also appear further down the hierarchy. Such sub-projects are usually
    introduced to group products. See \l{SubProject} for details.

    \note If your project consists of only one product, the Project item can be
    omitted.
*/

/*!
    \qmlproperty path Project::buildDirectory
    \readonly

    The build directory of the top-level project.
*/

/*!
    \qmlproperty string Project::name

    The project name. Only relevant when displaying a project tree in an IDE,
    for example.

    \defaultvalue The basename of the file that defines the project.
*/

/*!
    \qmlproperty string Project::profile
    \readonly

    The top-level \l{Profile}{profile} for building the project. This property
    is set by \QBS when the project is being set up.
*/

/*!
    \qmlproperty bool Project::condition

    Whether the project is enabled. If \c false, no \l{Product}{products} or
    sub-projects will be collected.

    \defaultvalue \c true
*/

/*!
    \qmlproperty stringList Project::qbsSearchPaths

    A list of paths that are searched for imports, modules and module providers in addition to the
    ones listed in \c{preferences.qbsSearchPaths}. The value set here is merged with the value
    inherited from the parent project, if there is one. The result is inherited by
    all products in the project.

    For the details about how to add custom items, see the \l{Custom Modules and Items} page.

    \defaultvalue An empty list
*/

/*!
    \qmlproperty pathList Project::references

    A list of files from which to import products. This is equivalent to defining
    the respective \l{Product} items directly under this Project item.

    \defaultvalue An empty list
*/

/*!
    \qmlproperty path Project::sourceDirectory
    \readonly

    The directory where the file containing the top-level Project item is
    located.
*/

/*!
    \qmlproperty string Project::minimumQbsVersion

    The minimum version of \QBS that is needed to build this project.

    \defaultvalue \c "1.3.0"
*/

/*!
    \qmlproperty stringList Project::qbsModuleProviders

    The list of \l{Module Providers} to use for this project.

    Providers contribute to the \l{Product::}{qbsSearchPaths} in the order specified here, so
    modules generated by providers specified earlier are prioritized.
    Currently, this order also corresponds with the actual execution order of the providers, but
    this should not be relied upon.

    \sa Product::qbsModuleProviders

    \since Qbs 1.21
*/

