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>
This commit is contained in:
parent
444cbd53e2
commit
a699fa520f
@ -139,20 +139,18 @@ UnixMakefileGenerator::init()
|
|||||||
project->values("QMAKE_LFLAGS") += project->values("QMAKE_LFLAGS_PREBIND");
|
project->values("QMAKE_LFLAGS") += project->values("QMAKE_LFLAGS_PREBIND");
|
||||||
if(!project->isEmpty("QMAKE_INCDIR"))
|
if(!project->isEmpty("QMAKE_INCDIR"))
|
||||||
project->values("INCLUDEPATH") += project->values("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")) {
|
if(!project->isEmpty("QMAKE_LIBDIR")) {
|
||||||
const QStringList &libdirs = project->values("QMAKE_LIBDIR");
|
const QStringList &libdirs = project->values("QMAKE_LIBDIR");
|
||||||
for(int i = 0; i < libdirs.size(); ++i) {
|
for(int i = 0; i < libdirs.size(); ++i) {
|
||||||
if(!project->isEmpty("QMAKE_LFLAGS_RPATH") && project->isActiveConfig("rpath_libdirs"))
|
if(!project->isEmpty("QMAKE_LFLAGS_RPATH") && project->isActiveConfig("rpath_libdirs"))
|
||||||
project->values("QMAKE_LFLAGS") += var("QMAKE_LFLAGS_RPATH") + libdirs[i];
|
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")) {
|
if(project->isActiveConfig("macx") && !project->isEmpty("QMAKE_FRAMEWORKPATH")) {
|
||||||
const QStringList &fwdirs = project->values("QMAKE_FRAMEWORKPATH");
|
const QStringList &fwdirs = project->values("QMAKE_FRAMEWORKPATH");
|
||||||
for(int i = 0; i < fwdirs.size(); ++i) {
|
for(int i = 0; i < fwdirs.size(); ++i) {
|
||||||
@ -469,6 +467,9 @@ QStringList
|
|||||||
bool
|
bool
|
||||||
UnixMakefileGenerator::findLibraries()
|
UnixMakefileGenerator::findLibraries()
|
||||||
{
|
{
|
||||||
|
QString libArg = project->first("QMAKE_L_FLAG");
|
||||||
|
if (libArg == "-L")
|
||||||
|
libArg.clear();
|
||||||
QList<QMakeLocalFileName> libdirs, frameworkdirs;
|
QList<QMakeLocalFileName> libdirs, frameworkdirs;
|
||||||
frameworkdirs.append(QMakeLocalFileName("/System/Library/Frameworks"));
|
frameworkdirs.append(QMakeLocalFileName("/System/Library/Frameworks"));
|
||||||
frameworkdirs.append(QMakeLocalFileName("/Library/Frameworks"));
|
frameworkdirs.append(QMakeLocalFileName("/Library/Frameworks"));
|
||||||
@ -480,9 +481,12 @@ UnixMakefileGenerator::findLibraries()
|
|||||||
QString stub, dir, extn, opt = (*it).trimmed();
|
QString stub, dir, extn, opt = (*it).trimmed();
|
||||||
if(opt.startsWith("-")) {
|
if(opt.startsWith("-")) {
|
||||||
if(opt.startsWith("-L")) {
|
if(opt.startsWith("-L")) {
|
||||||
QMakeLocalFileName f(opt.right(opt.length()-2));
|
QString lib = opt.mid(2);
|
||||||
|
QMakeLocalFileName f(lib);
|
||||||
if(!libdirs.contains(f))
|
if(!libdirs.contains(f))
|
||||||
libdirs.append(f);
|
libdirs.append(f);
|
||||||
|
if (!libArg.isEmpty())
|
||||||
|
*it = libArg + lib;
|
||||||
} else if(opt.startsWith("-l")) {
|
} else if(opt.startsWith("-l")) {
|
||||||
if (project->isActiveConfig("rvct_linker") || project->isActiveConfig("armcc_linker")) {
|
if (project->isActiveConfig("rvct_linker") || project->isActiveConfig("armcc_linker")) {
|
||||||
(*it) = "lib" + opt.mid(2) + ".so";
|
(*it) = "lib" + opt.mid(2) + ".so";
|
||||||
@ -572,6 +576,7 @@ QString linkLib(const QString &file, const QString &libName) {
|
|||||||
void
|
void
|
||||||
UnixMakefileGenerator::processPrlFiles()
|
UnixMakefileGenerator::processPrlFiles()
|
||||||
{
|
{
|
||||||
|
const QString libArg = project->first("QMAKE_L_FLAG");
|
||||||
QList<QMakeLocalFileName> libdirs, frameworkdirs;
|
QList<QMakeLocalFileName> libdirs, frameworkdirs;
|
||||||
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));
|
||||||
@ -582,8 +587,8 @@ UnixMakefileGenerator::processPrlFiles()
|
|||||||
for(int lit = 0; lit < l.size(); ++lit) {
|
for(int lit = 0; lit < l.size(); ++lit) {
|
||||||
QString opt = l.at(lit).trimmed();
|
QString opt = l.at(lit).trimmed();
|
||||||
if(opt.startsWith("-")) {
|
if(opt.startsWith("-")) {
|
||||||
if(opt.startsWith("-L")) {
|
if (opt.startsWith(libArg)) {
|
||||||
QMakeLocalFileName l(opt.right(opt.length()-2));
|
QMakeLocalFileName l(opt.mid(libArg.length()));
|
||||||
if(!libdirs.contains(l))
|
if(!libdirs.contains(l))
|
||||||
libdirs.append(l);
|
libdirs.append(l);
|
||||||
} else if(opt.startsWith("-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"))) {
|
(target_mode == TARG_MACX_MODE && opt.startsWith("-F"))) {
|
||||||
if(!lflags[arch].contains(opt))
|
if(!lflags[arch].contains(opt))
|
||||||
lflags[arch].append(opt);
|
lflags[arch].append(opt);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user