/****************************************************************************
**
** 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$
**
****************************************************************************/

/*!
    \qmltype ib
    \inqmlmodule QbsModules
    \since Qbs 1.1

    \brief Provides support for Apple Interface Builder and related tools and file types.

    The \c ib module contains properties and rules for building Interface Builder documents,
    storyboards, asset catalogs, and icon sets.

    This module is available on all platforms but is only usable on Apple platforms.

    \section2 Relevant File Tags
    \target filetags-ib

    The file tags determine how the tagged directories and files are handled.

    \table
    \header
        \li Tag
        \li Auto-tagged File Names
        \li Since
        \li Description
    \row
        \li \c{"assetcatalog"}
        \li \c{*.xcassets}
        \li 1.3
        \li Tagged directories are compiled into compiled asset catalog
            archives (\c .car files) on supported platforms, or a collection of
            loose resource files. The resulting files will be automatically
            tagged \l{filetags-bundle}{bundle.input}. If the current product is
            a bundle, the files will be included in the bundle's resources
            directory.
    \row
        \li \c{"iconcomposer"}
        \li \c{*.icon}
        \li 3.2
        \li Tagged directories are Icon Composer icon bundles created with the
            Icon Composer tool in Xcode 26 or later. These layered, adaptive
            icon files are compiled using \c actool alongside asset catalogs.
            The resulting files will be automatically tagged \l{filetags-bundle}
            {bundle.input}. If the current product is a bundle, the files will
            be included in the bundle's resources directory. Icon Composer icons
            can coexist with traditional asset catalog icons in the same project.
    \row
        \li \c{"iconset"}
        \li \c{*.iconset}
        \li 1.3
        \li Tagged directories are compiled into Apple ICNS files. The resulting
            files will be automatically tagged \l{filetags-bundle}
            {bundle.input}. If the current product is a bundle, the files will
            be included in the bundle's resources directory.
    \row
        \li \c{"nib"}
        \li \c{*.nib}, \c{*.xib}
        \li 1.1
        \li Tagged "NIB" and "XIB" files will be compiled. The output may be a
            flat file or a bundle (directory structure). The resulting
            files will be automatically tagged \l{filetags-bundle}
            {bundle.input}. If the current product is a bundle, the files will
            be included in the bundle's resources directory.
    \row
        \li \c{"png"}
        \li \c{*.png}
        \li 1.9
        \li Tagged PNG files may be converted into multi-resolution TIFFs.
            Source files should adopt the \l{Adopt the @2x Naming Convention}
            {@2x naming convention} in order to be properly grouped. The
            resulting files will be given the \l{filetags-dmg}{tiff} file tag.
    \row
        \li \c{"storyboard"}
        \li \c{*.storyboard}
        \li 1.3
        \li Tagged storyboard files will be compiled. The output may be a flat
            file or a bundle (directory structure). The resulting
            files will be automatically tagged \l{filetags-bundle}
            {bundle.input}. If the current product is a bundle, the files will
            be included in the bundle's resources directory.
    \endtable
*/

/*!
    \qmlproperty bool ib::warnings

    Whether to print warnings when compiling.

    Does not apply to icon sets.

    \defaultvalue \c{true}
*/

/*!
    \qmlproperty bool ib::errors

    Whether to print errors when compiling.

    Does not apply to icon sets.

    \defaultvalue \c{true}
*/

/*!
    \qmlproperty bool ib::notices

    Whether to print notifications when compiling.

    Does not apply to icon sets.

    \defaultvalue \c{true}
*/

/*!
    \qmlproperty stringList ib::flags

    Additional flags to pass to the underlying tool (\c ibtool, \c actool,
    \c iconutil).

    \nodefaultvalue

    \defaultvalue \c{true}
*/

/*!
    \qmlproperty string ib::ibtoolName
    \since Qbs 1.3

    The name of the \c ibtool binary used to compile NIBs and storyboards.

    This property should not normally need to be changed.

    \defaultvalue \c{"ibtool"}
*/

/*!
    \qmlproperty string ib::ibtoolPath
    \since Qbs 1.3

    The directory where the \c ibtool binary is located.

    This property should not normally need to be changed.

    \defaultvalue \c{ibtoolName}
*/

/*!
    \qmlproperty bool ib::flatten

    Compiles XIBs and storyboards into flattened (non-wrapper) files.

    Set to \c{false} to preserve editability of the resulting NIB and storyboard
    bundles in Interface Builder.

    This property should not normally need to be changed.

    \defaultvalue \c{true}
*/

/*!
    \qmlproperty string ib::module
    \since Qbs 1.3

    Sets the name of the module that the NIB or storyboard is a part of.

    Requires Xcode 6 or newer.

    \nodefaultvalue
*/

/*!
    \qmlproperty bool ib::autoActivateCustomFonts
    \since Qbs 1.3

    Instructs the \c ibtool compiler to add custom fonts to the application's
    \c Info.plist when compiling XIBs and storyboards, which will cause the
    fonts to activate upon application launch.

    Requires Xcode 6 or newer.

    \defaultvalue \c{true}
*/

/*!
    \qmlproperty string ib::actoolName
    \since Qbs 1.3

    The name of the \c actool binary used to compile asset catalogs.

    This property should not normally need to be changed.

    \defaultvalue \c{"actool"}
*/

/*!
    \qmlproperty string ib::actoolPath
    \since Qbs 1.3

    The directory where the \c actool binary is located.

    This property should not normally need to be changed.

    \defaultvalue \c{actoolName}
*/

/*!
    \qmlproperty string ib::appIconName
    \since Qbs 1.3

    The name of the resource in the asset catalog that will be used as the
    application's icon.

    Used to generate the partial \c Info.plist which will be merged into the
    resulting app.

    If this property is \c{undefined}, no application icon will be specified.

    \nodefaultvalue
*/

/*!
    \qmlproperty string ib::launchImageName
    \since Qbs 1.3

    The name of the resource in the asset catalog that will be used as the
    application's launch image.

    Used to generate the partial \c Info.plist which will be merged into the
    resulting app.

    If this property is \c{undefined}, no launch image will be specified.

    This property is specific to iOS.

    \nodefaultvalue
*/

/*!
    \qmlproperty bool ib::compressPngs
    \since Qbs 1.3

    Whether to compress PNG image files when building asset catalogs.

    \defaultvalue \c{true}
*/

/*!
    \qmlproperty string ib::iconutilName
    \since Qbs 1.3

    The name of the \c iconutil binary used to compile icon sets.

    This property should not normally need to be changed.

    \defaultvalue \c{"iconutil"}
*/

/*!
    \qmlproperty string ib::iconutilPath
    \since Qbs 1.3

    The directory where the \c iconutil binary is located.

    This property should not normally need to be changed.

    \defaultvalue \c{iconutilName}
*/
