summaryrefslogtreecommitdiffstats
path: root/src/macdeployqt
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2018-02-02 09:58:28 +0100
committerLiang Qi <liang.qi@qt.io>2018-02-02 13:21:18 +0100
commitfb16802edcbf8feeecd6a4f760888852aafd117e (patch)
tree910eebd355106840d6bfa24a8b73365b06272ba0 /src/macdeployqt
parent3c7675d9609a15bea81884560920bded736f79a6 (diff)
parentf1233878fef715c0746dcb6af7164acfb46fd418 (diff)
Merge remote-tracking branch 'origin/5.9' into 5.105.10
Conflicts: src/qtattributionsscanner/main.cpp Change-Id: Ic509d457547ec64122b17511563de5ea3e1b1b44
Diffstat (limited to 'src/macdeployqt')
-rw-r--r--src/macdeployqt/macdeployqt/main.cpp11
-rw-r--r--src/macdeployqt/shared/shared.cpp8
-rw-r--r--src/macdeployqt/shared/shared.h2
3 files changed, 18 insertions, 3 deletions
diff --git a/src/macdeployqt/macdeployqt/main.cpp b/src/macdeployqt/macdeployqt/main.cpp
index 5488a5f61..90a5412b2 100644
--- a/src/macdeployqt/macdeployqt/main.cpp
+++ b/src/macdeployqt/macdeployqt/main.cpp
@@ -53,6 +53,7 @@ int main(int argc, char **argv)
qDebug() << " -codesign=<ident> : Run codesign with the given identity on all executables";
qDebug() << " -appstore-compliant: Skip deployment of components that use private API";
qDebug() << " -libpath=<path> : Add the given path to the library search path";
+ qDebug() << " -fs=<filesystem> : Set the filesystem used for the .dmg disk image (defaults to HFS+)";
qDebug() << "";
qDebug() << "macdeployqt takes an application bundle as input and makes it";
qDebug() << "self-contained by copying in the Qt frameworks and plugins that";
@@ -83,6 +84,7 @@ int main(int argc, char **argv)
bool plugins = true;
bool dmg = false;
+ QByteArray filesystem("HFS+");
bool useDebugLibs = false;
extern bool runStripEnabled;
extern bool alwaysOwerwriteEnabled;
@@ -162,6 +164,13 @@ int main(int argc, char **argv)
LogDebug() << "Argument found:" << argument;
deployFramework = true;
+ } else if (argument.startsWith(QByteArray("-fs"))) {
+ LogDebug() << "Argument found:" << argument;
+ int index = argument.indexOf('=');
+ if (index == -1)
+ LogError() << "Missing filesystem type";
+ else
+ filesystem = argument.mid(index+1);
} else if (argument.startsWith("-")) {
LogError() << "Unknown argument" << argument << "\n";
return 1;
@@ -207,7 +216,7 @@ int main(int argc, char **argv)
if (dmg) {
LogNormal();
- createDiskImage(appBundlePath);
+ createDiskImage(appBundlePath, filesystem);
}
return 0;
diff --git a/src/macdeployqt/shared/shared.cpp b/src/macdeployqt/shared/shared.cpp
index a2284a192..9ce06e597 100644
--- a/src/macdeployqt/shared/shared.cpp
+++ b/src/macdeployqt/shared/shared.cpp
@@ -1495,7 +1495,7 @@ void codesign(const QString &identity, const QString &appBundlePath) {
codesignBundle(identity, appBundlePath, QList<QString>());
}
-void createDiskImage(const QString &appBundlePath)
+void createDiskImage(const QString &appBundlePath, const QString &filesystemType)
{
QString appBaseName = appBundlePath;
appBaseName.chop(4); // remove ".app" from end
@@ -1513,16 +1513,22 @@ void createDiskImage(const QString &appBundlePath)
LogNormal() << "Creating disk image (.dmg) for" << appBundlePath;
}
+ LogNormal() << "Image will use" << filesystemType;
+
// More dmg options can be found in the hdiutil man page.
QStringList options = QStringList()
<< "create" << dmgName
<< "-srcfolder" << appBundlePath
<< "-format" << "UDZO"
+ << "-fs" << filesystemType
<< "-volname" << appBaseName;
QProcess hdutil;
hdutil.start("hdiutil", options);
hdutil.waitForFinished(-1);
+ if (hdutil.exitCode() != 0) {
+ LogError() << "Bundle creation error:" << hdutil.readAllStandardError();
+ }
}
void fixupFramework(const QString &frameworkName)
diff --git a/src/macdeployqt/shared/shared.h b/src/macdeployqt/shared/shared.h
index c173846c8..c4d60ea0a 100644
--- a/src/macdeployqt/shared/shared.h
+++ b/src/macdeployqt/shared/shared.h
@@ -129,7 +129,7 @@ QSet<QString> codesignBundle(const QString &identity,
const QString &appBundlePath,
QList<QString> additionalBinariesContainingRpaths);
void codesign(const QString &identity, const QString &appBundlePath);
-void createDiskImage(const QString &appBundlePath);
+void createDiskImage(const QString &appBundlePath, const QString &filesystemType);
void fixupFramework(const QString &appBundlePath);