summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorkh <karsten.heimrich@theqtcompany.com>2015-02-03 17:23:51 +0100
committerKarsten Heimrich <karsten.heimrich@theqtcompany.com>2015-02-04 10:08:24 +0000
commit99cbf6812f2d872c23286ae566365e4c65bfd662 (patch)
tree25bcee22529394e71255d372b59ebde290499a08 /src/libs
parent5c14027b2cc495d596d0741b052aec6159646ba8 (diff)
CreateLocalRepository doesn't work on OS X.
Task-number: QTIFW-622 Change-Id: I0a370801f605a43739ed660afcfe6a4c03f082dc Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index 1e2f4923c..5ccf2f82d 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -1503,10 +1503,20 @@ bool PackageManagerCorePrivate::runInstaller()
Operation *createRepo = createOwnedOperation(QLatin1String("CreateLocalRepository"));
if (createRepo) {
+ QString binaryFile = QCoreApplication::applicationFilePath();
+#ifdef Q_OS_OSX
+ // The installer binary on OSX does not contain the binary content, it's put into
+ // the resources folder as separate file. Adjust the actual binary path. No error
+ // checking here since we will fail later while reading the binary content.
+ QDir resourcePath(QFileInfo(binaryFile).dir());
+ resourcePath.cdUp();
+ resourcePath.cd(QLatin1String("Resources"));
+ binaryFile = resourcePath.filePath(QLatin1String("installer.dat"));
+#endif
createRepo->setValue(QLatin1String("uninstall-only"), true);
createRepo->setValue(QLatin1String("installer"), QVariant::fromValue(m_core));
- createRepo->setArguments(QStringList() << QCoreApplication::applicationFilePath()
- << target + QLatin1String("/repository"));
+ createRepo->setArguments(QStringList() << binaryFile << target
+ + QLatin1String("/repository"));
connectOperationToInstaller(createRepo, progressOperationSize);