1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
/****************************************************************************
**
** 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$
**
****************************************************************************/
/*!
\contentspage list-of-convenience-items.html
\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"]}
*/
|