diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/macdeployqt/macdeployqt/main.cpp | 11 | ||||
-rw-r--r-- | src/macdeployqt/shared/shared.cpp | 8 | ||||
-rw-r--r-- | src/macdeployqt/shared/shared.h | 2 |
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 49dbe5426..90cfaf2ee 100644 --- a/src/macdeployqt/shared/shared.cpp +++ b/src/macdeployqt/shared/shared.cpp @@ -1493,7 +1493,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 @@ -1511,16 +1511,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); |