diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2012-07-13 13:08:26 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-27 16:29:08 +0200 |
commit | a699fa520f4c8731603a4223f44607dc31becf07 (patch) | |
tree | 044c74241447346b9dfbfee8834508a32981c25c /qmake/generators | |
parent | 444cbd53e25aeca5e3ebb4eaf01f3de190d98f00 (diff) |
unify handling of non-standard linker -L flags
findLibraries() now consistently expands to the linker-specific syntax,
and processPrlFiles() expects that syntax.
Change-Id: Ifd7b51d01378c91d6f2b132aca33629f21ca72f9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Diffstat (limited to 'qmake/generators')
-rw-r--r-- | qmake/generators/unix/unixmake.cpp | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp index 1bad258107..8a3a371b1d 100644 --- a/qmake/generators/unix/unixmake.cpp +++ b/qmake/generators/unix/unixmake.cpp @@ -139,18 +139,16 @@ UnixMakefileGenerator::init() project->values("QMAKE_LFLAGS") += project->values("QMAKE_LFLAGS_PREBIND"); if(!project->isEmpty("QMAKE_INCDIR")) project->values("INCLUDEPATH") += project->values("QMAKE_INCDIR"); + project->values("QMAKE_L_FLAG") + << (project->isActiveConfig("rvct_linker") ? "--userlibpath " + : project->isActiveConfig("armcc_linker") ? "-L--userlibpath=" + : "-L"); if(!project->isEmpty("QMAKE_LIBDIR")) { const QStringList &libdirs = project->values("QMAKE_LIBDIR"); for(int i = 0; i < libdirs.size(); ++i) { if(!project->isEmpty("QMAKE_LFLAGS_RPATH") && project->isActiveConfig("rpath_libdirs")) project->values("QMAKE_LFLAGS") += var("QMAKE_LFLAGS_RPATH") + libdirs[i]; - if (project->isActiveConfig("rvct_linker")) { - project->values("QMAKE_LIBDIR_FLAGS") += "--userlibpath " + escapeFilePath(libdirs[i]); - } else if (project->isActiveConfig("armcc_linker")) { - project->values("QMAKE_LIBDIR_FLAGS") += "-L--userlibpath=" + escapeFilePath(libdirs[i]); - } else { - project->values("QMAKE_LIBDIR_FLAGS") += "-L" + escapeFilePath(libdirs[i]); - } + project->values("QMAKE_LIBDIR_FLAGS") += "-L" + escapeFilePath(libdirs[i]); } } if(project->isActiveConfig("macx") && !project->isEmpty("QMAKE_FRAMEWORKPATH")) { @@ -469,6 +467,9 @@ QStringList bool UnixMakefileGenerator::findLibraries() { + QString libArg = project->first("QMAKE_L_FLAG"); + if (libArg == "-L") + libArg.clear(); QList<QMakeLocalFileName> libdirs, frameworkdirs; frameworkdirs.append(QMakeLocalFileName("/System/Library/Frameworks")); frameworkdirs.append(QMakeLocalFileName("/Library/Frameworks")); @@ -480,9 +481,12 @@ UnixMakefileGenerator::findLibraries() QString stub, dir, extn, opt = (*it).trimmed(); if(opt.startsWith("-")) { if(opt.startsWith("-L")) { - QMakeLocalFileName f(opt.right(opt.length()-2)); + QString lib = opt.mid(2); + QMakeLocalFileName f(lib); if(!libdirs.contains(f)) libdirs.append(f); + if (!libArg.isEmpty()) + *it = libArg + lib; } else if(opt.startsWith("-l")) { if (project->isActiveConfig("rvct_linker") || project->isActiveConfig("armcc_linker")) { (*it) = "lib" + opt.mid(2) + ".so"; @@ -572,6 +576,7 @@ QString linkLib(const QString &file, const QString &libName) { void UnixMakefileGenerator::processPrlFiles() { + const QString libArg = project->first("QMAKE_L_FLAG"); QList<QMakeLocalFileName> libdirs, frameworkdirs; foreach (const QString &dlib, project->values("QMAKE_DEFAULT_LIBDIRS")) libdirs.append(QMakeLocalFileName(dlib)); @@ -582,8 +587,8 @@ UnixMakefileGenerator::processPrlFiles() for(int lit = 0; lit < l.size(); ++lit) { QString opt = l.at(lit).trimmed(); if(opt.startsWith("-")) { - if(opt.startsWith("-L")) { - QMakeLocalFileName l(opt.right(opt.length()-2)); + if (opt.startsWith(libArg)) { + QMakeLocalFileName l(opt.mid(libArg.length())); if(!libdirs.contains(l)) libdirs.append(l); } else if(opt.startsWith("-l")) { @@ -659,7 +664,7 @@ UnixMakefileGenerator::processPrlFiles() } } - if(opt.startsWith("-L") || + if (opt.startsWith(libArg) || (target_mode == TARG_MACX_MODE && opt.startsWith("-F"))) { if(!lflags[arch].contains(opt)) lflags[arch].append(opt); |