diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp index 1f7d1ecf3e69352acf227451641f751a6cbf9f1f..556036b692b5b70df4ff3ac29de52a22c213dcad 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)