remove duplicate -L flags in findLibraries()
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Fri, 13 Jul 2012 11:09:30 +0000 (13:09 +0200)
committerQt by Nokia <qt-info@nokia.com>
Fri, 27 Jul 2012 14:29:12 +0000 (16:29 +0200)
unlike duplicated -l options, duplicated -L options are really redundant.

Change-Id: I4fa42d8ee2f10c6e6263457d9bb97291e13685ef
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
qmake/generators/unix/unixmake.cpp

index 8a3a371..c3a96dd 100644 (file)
@@ -476,15 +476,18 @@ UnixMakefileGenerator::findLibraries()
     const QString lflags[] = { "QMAKE_LIBDIR_FLAGS", "QMAKE_FRAMEWORKPATH_FLAGS", "QMAKE_LIBS", "QMAKE_LIBS_PRIVATE", QString() };
     for(int i = 0; !lflags[i].isNull(); i++) {
         QStringList &l = project->values(lflags[i]);
-        for(QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
+        for (QStringList::Iterator it = l.begin(); it != l.end(); ) {
             bool do_suffix = true;
             QString stub, dir, extn, opt = (*it).trimmed();
             if(opt.startsWith("-")) {
                 if(opt.startsWith("-L")) {
                     QString lib = opt.mid(2);
                     QMakeLocalFileName f(lib);
-                    if(!libdirs.contains(f))
-                        libdirs.append(f);
+                    if (libdirs.contains(f)) {
+                        it = l.erase(it);
+                        continue;
+                    }
+                    libdirs.append(f);
                     if (!libArg.isEmpty())
                         *it = libArg + lib;
                 } else if(opt.startsWith("-l")) {
@@ -560,6 +563,7 @@ UnixMakefileGenerator::findLibraries()
                     }
                 }
             }
+            ++it;
         }
     }
     return false;