summaryrefslogtreecommitdiffstats
path: root/installerbuilder
diff options
context:
space:
mode:
authorDaniel Molkentin <daniel.molkentin@nokia.com>2012-02-14 13:16:24 +0100
committerDaniel Molkentin <daniel.molkentin@nokia.com>2012-02-22 14:19:04 +0100
commitb4317667b9ec386148851dc229ac87a6b08ee370 (patch)
treefd29136de38aa204592ab9af1a57fda0c8b3202f /installerbuilder
parent1794e60452440968ff2bf311620ec52f3a22b4b3 (diff)
When creating a disk image, only cut of the extension.
This allows to correctly handle input names like "app-1.0.0.dmg". Change-Id: Ie58c2cd1ab75e23a981ef2a5008a6f9c9ff6533d Reviewed-by: Karsten Heimrich <karsten.heimrich@nokia.com> Reviewed-by: Niels Weber <niels.2.weber@nokia.com>
Diffstat (limited to 'installerbuilder')
-rw-r--r--installerbuilder/binarycreator/binarycreator.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/installerbuilder/binarycreator/binarycreator.cpp b/installerbuilder/binarycreator/binarycreator.cpp
index 2ed5439ff..1309d458e 100644
--- a/installerbuilder/binarycreator/binarycreator.cpp
+++ b/installerbuilder/binarycreator/binarycreator.cpp
@@ -114,6 +114,11 @@ static int assemble(Input input, const QString &configdir)
const QString configfile = QFileInfo(configdir, QLatin1String("config.xml")).absoluteFilePath();
const QInstaller::Settings &settings = QInstaller::Settings::fromFileAndPrefix(configfile, configdir);
+#ifdef Q_OS_WIN
+ if (input.outputPath.endsWith(QLatin1String(".exe")))
+ input.outputPath.chop(4);
+#endif
+
#ifdef Q_WS_MAC
if (QFileInfo(input.installerExePath).isBundle()) {
const QString bundle = input.installerExePath;
@@ -122,7 +127,7 @@ static int assemble(Input input, const QString &configdir)
QSettings::NativeFormat);
input.installerExePath = QString::fromLatin1("%1/Contents/MacOS/%2").arg(bundle)
.arg(s.value(QLatin1String("CFBundleExecutable"),
- QFileInfo(input.installerExePath).baseName()).toString());
+ QFileInfo(input.installerExePath).completeBaseName()).toString());
}
const bool createDMG = input.outputPath.endsWith(QLatin1String(".dmg"));
@@ -148,7 +153,7 @@ static int assemble(Input input, const QString &configdir)
const QString iconFile = QFile::exists(settings.icon()) ? settings.icon()
: QString::fromLatin1(":/resources/default_icon_mac.icns");
- const QString iconTargetFile = fi.baseName() + QLatin1String(".icns");
+ const QString iconTargetFile = fi.completeBaseName() + QLatin1String(".icns");
QFile::copy(iconFile, fi.filePath() + QLatin1String("/Contents/Resources/") + iconTargetFile);
QFile infoPList(fi.filePath() + QLatin1String("/Contents/Info.plist"));
@@ -169,7 +174,7 @@ static int assemble(Input input, const QString &configdir)
plistStream << QLatin1String(" <key>CFBundleSignature</key>") << endl;
plistStream << QLatin1String(" <string> ???? </string>") << endl;
plistStream << QLatin1String(" <key>CFBundleExecutable</key>") << endl;
- plistStream << QLatin1String(" <string>") << fi.baseName() << QLatin1String("</string>")
+ plistStream << QLatin1String(" <string>") << fi.completeBaseName() << QLatin1String("</string>")
<< endl;
plistStream << QLatin1String(" <key>CFBundleIdentifier</key>") << endl;
plistStream << QLatin1String(" <string>com.yourcompany.installerbase</string>") << endl;
@@ -180,7 +185,7 @@ static int assemble(Input input, const QString &configdir)
plistStream << QLatin1String("</plist>") << endl;
input.outputPath = QString::fromLatin1("%1/Contents/MacOS/%2").arg(input.outputPath)
- .arg(fi.baseName());
+ .arg(fi.completeBaseName());
}
#endif
@@ -303,7 +308,7 @@ static int assemble(Input input, const QString &configdir)
QFile::copy(QLatin1String(":/resources/mkdmg.sh"), mkdmgscript);
::chmod(qPrintable(mkdmgscript), 0755);
QProcess p;
- p.start(mkdmgscript, QStringList() << QFileInfo(out.fileName()).baseName() << bundle);
+ p.start(mkdmgscript, QStringList() << QFileInfo(out.fileName()).fileName() << bundle);
p.waitForFinished();
QFile::remove(mkdmgscript);
qDebug() << "done." << mkdmgscript;