summaryrefslogtreecommitdiffstats
path: root/installerbuilder
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@nokia.com>2011-07-28 17:45:28 +0200
committerTim Jenssen <tim.jenssen@nokia.com>2011-07-29 08:45:11 +0200
commit1bda94ebd93a7a075e4c4a31e4352bb78aaf262c (patch)
tree056c5e3843fe433fbed555146b754ca4ce470d65 /installerbuilder
parentaddd9cd4f0d304700f81406d06ac3d895e7bceb4 (diff)
do mac patching in the right way
- if Current Dir is a symlink we should use the absolutepath of this dir and not of the to be patched file
Diffstat (limited to 'installerbuilder')
-rw-r--r--installerbuilder/libinstaller/macreplaceinstallnamesoperation.cpp28
1 files changed, 15 insertions, 13 deletions
diff --git a/installerbuilder/libinstaller/macreplaceinstallnamesoperation.cpp b/installerbuilder/libinstaller/macreplaceinstallnamesoperation.cpp
index ac2d761fd..5068567f6 100644
--- a/installerbuilder/libinstaller/macreplaceinstallnamesoperation.cpp
+++ b/installerbuilder/libinstaller/macreplaceinstallnamesoperation.cpp
@@ -104,13 +104,12 @@ bool MacReplaceInstallNamesOperation::apply(const QString &indicator, const QStr
QDirIterator dirIterator(searchDir, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
while (dirIterator.hasNext()) {
QString fileName = dirIterator.next();
- if (dirIterator.fileInfo().isDir())
+ if (dirIterator.fileInfo().isDir() && fileName.endsWith(QLatin1String(".framework")))
+ relocateFramework(fileName);
+ else if (dirIterator.fileInfo().isDir())
continue;
-
- if (fileName.endsWith(QLatin1String(".dylib")))
+ else if (fileName.endsWith(QLatin1String(".dylib")))
relocateBinary(fileName);
- else if (fileName.endsWith(QLatin1String(".framework")))
- relocateFramework(fileName);
else if (dirIterator.fileInfo().isExecutable() && !fileName.endsWith(QLatin1String(".h"))
&& !fileName.endsWith(QLatin1String(".cpp")) && !fileName.endsWith(QLatin1String(".pro"))
&& !fileName.endsWith(QLatin1String(".pri"))) {
@@ -222,16 +221,19 @@ void MacReplaceInstallNamesOperation::relocateFramework(const QString &directory
{
QFileInfo fi(directoryName);
QString frameworkName = fi.baseName();
- fi.setFile(directoryName + QLatin1String("/Versions/Current/") + frameworkName);
- if (fi.exists()) {
- QString fileName = fi.isSymLink() ? fi.symLinkTarget() : fi.absoluteFilePath();
- relocateBinary(fileName);
+
+ QString absoluteVersionDirectory = directoryName + QLatin1String("/Versions/Current");
+ if (QFileInfo(absoluteVersionDirectory).isSymLink()) {
+ absoluteVersionDirectory = QFileInfo(absoluteVersionDirectory).symLinkTarget();
}
- fi.setFile(directoryName + QLatin1String("/Versions/Current/") + frameworkName + QLatin1String("_debug"));
- if (fi.exists()) {
- QString fileName = fi.isSymLink() ? fi.symLinkTarget() : fi.absoluteFilePath();
+
+ fi.setFile(absoluteVersionDirectory + QDir::separator() + frameworkName);
+ if (fi.exists())
+ relocateBinary(fileName);
+
+ fi.setFile(absoluteVersionDirectory + QDir::separator() + frameworkName + QLatin1String("_debug"));
+ if (fi.exists())
relocateBinary(fileName);
- }
}
bool MacReplaceInstallNamesOperation::execCommand(const QString &cmd, const QStringList &args)