diff options
author | kh <karsten.heimrich@theqtcompany.com> | 2015-02-03 17:23:51 +0100 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@theqtcompany.com> | 2015-02-04 10:08:24 +0000 |
commit | 99cbf6812f2d872c23286ae566365e4c65bfd662 (patch) | |
tree | 25bcee22529394e71255d372b59ebde290499a08 /src/libs | |
parent | 5c14027b2cc495d596d0741b052aec6159646ba8 (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.cpp | 14 |
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); |