/****************************************************************************
**
** 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$
**
****************************************************************************/
/*!
    \nextpage AppleDiskImage
    \qmltype AppleApplicationDiskImage
    \since Qbs 1.9
    \inherits AppleDiskImage
    \inqmlmodule QbsConvenienceItems
    \ingroup list-of-items
    \keyword QML.AppleApplicationDiskImage

    \brief Apple application drag 'n' drop disk image installer.

    An AppleApplicationDiskImage item is a \l{Product}{product} of the
    \l{Product::}{type} \c{"dmg.dmg"} that has a dependency on the
    \l{dmg} module. In addition, it has rules and properties
    specific to building drag 'n' drop disk image installers with an application
    bundle and symbolic link to the \c /Applications directory.

    Any artifacts of product dependencies that are tagged \c{"installable"} will
    be copied into the disk image, provided their file paths are relative to the
    path specified by the \l{sourceBase} property (that is, are located in that
    directory). Any artifacts tagged \c{"installable"} that are not relative to
    \l{sourceBase} will be ignored.

    Here is what the project file could look like for a simple DMG installer:
    \code
        AppleApplicationDiskImage {
            Depends { name: "myapp" }
            name: "My App"
            dmg.volumeName: name
            dmg.iconSize: 128
            dmg.windowWidth: 640
            dmg.windowHeight: 280
            dmg.iconPositions: [
                {"path": "Applications", "x": 128, "y": 128},
                {"path": "My App.app", "x": 256, "y": 128}
            ]
            files: ["background.tiff", "volume-icon.icns"]
            Group {
                files: ["*.lproj/**"] // licenses
                fileTags: ["dmg.license.input"]
            }
        }
    \endcode

    For plain disk images whose contents are not a single application bundle, consider the base
    \l{AppleDiskImage} item instead.
*/

/*!
    \qmlproperty string AppleApplicationDiskImage::sourceBase

    The base directory from which artifacts installed into the disk image will be copied.
    This directory is always considered to be relative to \l{qbs::installRoot}
    {qbs.installRoot}.
    For example, if the application Example.app exists at
    \c{qbs.installRoot/Applications/Example.app}, and the value of this property
    is \c{"/Applications"}, the application will be located at\c{/Example.app}
    relative to the disk image root. Therefore, its full path when the disk
    image is mounted would be something like \c{/Volumes/Example-1.0/Example.app}.

    \defaultvalue \c{"/Applications"}
*/

/*!
    \qmlproperty stringList AppleApplicationDiskImage::symlinks

    List of symlinks to create in the disk image. This is specified as a list of strings,
    each string containing two file paths separated by a colon. The first path is the
    symlink target, and the second path is the name of the symlink relative to the root of
    the disk image.

    \defaultvalue \c{["/Applications:Applications"]}
*/
