escape paths coming from prl files

qmake has the rather bizarre logic that QMAKE_LIBS* is escaped rather
early (instead of right before being written out the the Makefile).
consequently, we need to explicitly escape the paths from the prl files
as well.

Task-number: QTBUG-32326
Change-Id: Ieaf81113d3ca3cf5d8a1ef87c83c5721d6b473ee
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This commit is contained in:
Oswald Buddenhagen 2013-07-18 11:57:21 +02:00 committed by The Qt Project
parent f216caa52c
commit cc0c394682
2 changed files with 9 additions and 3 deletions

View File

@ -641,7 +641,7 @@ UnixMakefileGenerator::processPrlFiles()
ProStringList &prl_libs = project->values("QMAKE_CURRENT_PRL_LIBS");
if(!prl_libs.isEmpty()) {
for(int prl = 0; prl < prl_libs.size(); ++prl)
l.insert(lit+prl+1, prl_libs.at(prl));
l.insert(lit+prl+1, escapeFilePath(prl_libs.at(prl).toQString()));
prl_libs.clear();
}
}

View File

@ -241,8 +241,14 @@ Win32MakefileGenerator::processPrlFiles()
}
}
ProStringList &prl_libs = project->values("QMAKE_CURRENT_PRL_LIBS");
for (int prl = 0; prl < prl_libs.size(); ++prl)
l.insert(lit + prl + 1, prl_libs.at(prl));
for (int prl = 0; prl < prl_libs.size(); ++prl) {
ProString arg = prl_libs.at(prl);
if (arg.startsWith(libArg))
arg = arg.left(libArg.length()) + escapeFilePath(arg.mid(libArg.length()).toQString());
else if (!arg.startsWith('/'))
arg = escapeFilePath(arg.toQString());
l.insert(lit + prl + 1, arg);
}
prl_libs.clear();
}