summaryrefslogtreecommitdiffstats
path: root/qmake
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2014-09-25 17:14:40 +0200
committerOswald Buddenhagen <oswald.buddenhagen@digia.com>2014-10-01 10:56:52 +0200
commit6c6b5ff8fb8dfdc9f9057e4d9db5f467131a3a04 (patch)
treeea8b6c598a33bc6200b8f8aa1f4adf19b0dad7a9 /qmake
parent8c138054b31ab181c26f5b8135e307ed146d9ec6 (diff)
de-duplicate top-level bundle symlink creation
multiple QMAKE_BUNDLE_DATA entries can install into the same directory, but it obviously makes no sense to symlink that repeatedly. Change-Id: If65f7acdf4e158e33511917a027a380e642e2f28 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Diffstat (limited to 'qmake')
-rw-r--r--qmake/generators/unix/unixmake2.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
index 1f7d1ecf3e..556036b692 100644
--- a/qmake/generators/unix/unixmake2.cpp
+++ b/qmake/generators/unix/unixmake2.cpp
@@ -703,6 +703,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
}
if (!project->isEmpty("QMAKE_BUNDLE")) {
+ QHash<QString, QString> symlinks;
ProStringList &alldeps = project->values("ALL_DEPS");
QString bundle_dir = project->first("DESTDIR") + project->first("QMAKE_BUNDLE") + "/";
if (!project->first("QMAKE_PKGINFO").isEmpty()) {
@@ -810,13 +811,8 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
if (!project->isEmpty(vkey)) {
QString version = project->first(vkey) + "/" +
project->first("QMAKE_FRAMEWORK_VERSION") + "/";
- QString link = Option::fixPathToLocalOS(path + project->first(pkey));
- bundledFiles << link;
- alldeps << link;
- t << link << ": \n\t"
- << mkdir_p_asstring(path) << "\n\t"
- << "@$(SYMLINK) " << project->first(vkey) + "/Current/" << project->first(pkey)
- << " " << path << endl;
+ symlinks[Option::fixPathToLocalOS(path + project->first(pkey))] =
+ project->first(vkey) + "/Current/" + project->first(pkey);
path += version;
}
path += project->first(pkey).toQString();
@@ -842,6 +838,15 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
}
}
}
+ QHash<QString, QString>::ConstIterator symIt = symlinks.constBegin(),
+ symEnd = symlinks.constEnd();
+ for (; symIt != symEnd; ++symIt) {
+ bundledFiles << symIt.key();
+ alldeps << symIt.key();
+ t << symIt.key() << ":\n\t"
+ << mkdir_p_asstring(bundle_dir) << "\n\t"
+ << "@$(SYMLINK) " << symIt.value() << " " << bundle_dir << endl;
+ }
}
t << endl << "all: " << escapeDependencyPath(deps)