insert explicit library search paths before system search paths

... as the linker does.

Change-Id: I4a030d9e2f281b892b78ba25b11f6df6b0893712
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
This commit is contained in:
Oswald Buddenhagen 2012-07-19 17:50:59 +02:00 committed by Qt by Nokia
parent baf1f46b21
commit 5bc9541e7a

View File

@ -475,6 +475,7 @@ UnixMakefileGenerator::findLibraries()
if (libArg == "-L") if (libArg == "-L")
libArg.clear(); libArg.clear();
QList<QMakeLocalFileName> libdirs; QList<QMakeLocalFileName> libdirs;
int libidx = 0;
foreach (const QString &dlib, project->values("QMAKE_DEFAULT_LIBDIRS")) foreach (const QString &dlib, project->values("QMAKE_DEFAULT_LIBDIRS"))
libdirs.append(QMakeLocalFileName(dlib)); libdirs.append(QMakeLocalFileName(dlib));
const QString lflags[] = { "QMAKE_LIBS", "QMAKE_LIBS_PRIVATE", QString() }; const QString lflags[] = { "QMAKE_LIBS", "QMAKE_LIBS_PRIVATE", QString() };
@ -490,7 +491,7 @@ UnixMakefileGenerator::findLibraries()
it = l.erase(it); it = l.erase(it);
continue; continue;
} }
libdirs.append(f); libdirs.insert(libidx++, f);
if (!libArg.isEmpty()) if (!libArg.isEmpty())
*it = libArg + lib; *it = libArg + lib;
} else if(opt.startsWith("-l")) { } else if(opt.startsWith("-l")) {
@ -577,6 +578,7 @@ UnixMakefileGenerator::processPrlFiles()
{ {
const QString libArg = project->first("QMAKE_L_FLAG"); const QString libArg = project->first("QMAKE_L_FLAG");
QList<QMakeLocalFileName> libdirs, frameworkdirs; QList<QMakeLocalFileName> libdirs, frameworkdirs;
int libidx = 0, fwidx = 0;
foreach (const QString &dlib, project->values("QMAKE_DEFAULT_LIBDIRS")) foreach (const QString &dlib, project->values("QMAKE_DEFAULT_LIBDIRS"))
libdirs.append(QMakeLocalFileName(dlib)); libdirs.append(QMakeLocalFileName(dlib));
frameworkdirs.append(QMakeLocalFileName("/System/Library/Frameworks")); frameworkdirs.append(QMakeLocalFileName("/System/Library/Frameworks"));
@ -590,7 +592,7 @@ UnixMakefileGenerator::processPrlFiles()
if (opt.startsWith(libArg)) { if (opt.startsWith(libArg)) {
QMakeLocalFileName l(opt.mid(libArg.length())); QMakeLocalFileName l(opt.mid(libArg.length()));
if(!libdirs.contains(l)) if(!libdirs.contains(l))
libdirs.append(l); libdirs.insert(libidx++, l);
} else if(opt.startsWith("-l")) { } else if(opt.startsWith("-l")) {
QString lib = opt.right(opt.length() - 2); QString lib = opt.right(opt.length() - 2);
for(int dep_i = 0; dep_i < libdirs.size(); ++dep_i) { for(int dep_i = 0; dep_i < libdirs.size(); ++dep_i) {
@ -600,7 +602,7 @@ UnixMakefileGenerator::processPrlFiles()
if(exists(la) && QFile::exists(lfn.local() + Option::dir_sep + ".libs")) { if(exists(la) && QFile::exists(lfn.local() + Option::dir_sep + ".libs")) {
QString dot_libs = lfn.real() + Option::dir_sep + ".libs"; QString dot_libs = lfn.real() + Option::dir_sep + ".libs";
l.append("-L" + dot_libs); l.append("-L" + dot_libs);
libdirs.append(QMakeLocalFileName(dot_libs)); libdirs.insert(libidx++, QMakeLocalFileName(dot_libs));
} }
} }
@ -617,7 +619,7 @@ UnixMakefileGenerator::processPrlFiles()
} else if (target_mode == TARG_MACX_MODE && opt.startsWith("-F")) { } else if (target_mode == TARG_MACX_MODE && opt.startsWith("-F")) {
QMakeLocalFileName f(opt.right(opt.length()-2)); QMakeLocalFileName f(opt.right(opt.length()-2));
if(!frameworkdirs.contains(f)) if(!frameworkdirs.contains(f))
frameworkdirs.append(f); frameworkdirs.insert(fwidx++, f);
} else if (target_mode == TARG_MACX_MODE && opt.startsWith("-framework")) { } else if (target_mode == TARG_MACX_MODE && opt.startsWith("-framework")) {
if(opt.length() > 11) if(opt.length() > 11)
opt = opt.mid(11); opt = opt.mid(11);