/****************************************************************************
**
** Copyright (C) 2016 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$
**
****************************************************************************/
/*!
    \contentspage list-of-language-items.html
    \previouspage export-item.html
    \page filetagger-item.html
    \nextpage group-item.html
    \ingroup list-of-language-items
    \ingroup list-of-items

    \title FileTagger Item
    \brief Maps file patterns to tags.

    This item maps file patterns to tags. It can be attached to a product or a module.
    In the latter case, its effect is the same as if it had been attached to all products having
    a dependency on the respective module. For instance, the cpp module of \QBS has, among others,
    the following file tagger:
    \code
    FileTagger {
        patterns: "*.cpp"
        fileTags: ["cpp"]
    }
    \endcode

    As a result, the "cpp" tag is automatically attached to all files ending with ".cpp" in
    products depending on the cpp module. This causes them to be compiled, because a C++
    compiler rule has "cpp" in its list of matching input tags.

    File taggers are disabled if file tags are set explicitly in a product or group.
    For example, the "cpp" tag is not attached to the cpp files in the following product:

    \code
    Product {
        Depends { name: "cpp" }
        Group {
            files: "*.cpp"
            fileTags: "other"
        }
    }
    \endcode

    \section1 FileTagger Properties

    \table
    \header
        \li Property
        \li Type
        \li Default
        \li Description
    \row
        \li patterns
        \li stringList
        \li none
        \li The patterns to match against. Supports the usual wildcards '*', '?' and '[]'.
            Neither the list itself nor any of its elements may be empty.
    \row
        \li fileTags
        \li list
        \li empty list
        \li Tags to attach to a product's files. These can then be matched by a rule.
    \endtable
*/
