qmake: fix file name treatment in emission of extra targets

that is, adjust path separators and don't quote them. we already did
that to some degree, but totally inconsistently, so it just didn't work
for any targets with "fancy" file names.

note that we don't bother doing that for recursive targets, as these are
assumed to be identifiers.

Change-Id: Ic75f003b71abc6fed03a4121b903ad5ee8253ed2
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This commit is contained in:
Oswald Buddenhagen 2016-11-08 17:01:01 +01:00
parent 71fd040318
commit 4e96c4c533

View File

@ -2623,8 +2623,8 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT
for (ProStringList::ConstIterator dep_it = deplist.begin(); dep_it != deplist.end(); ++dep_it) {
QString dep = var(ProKey(*dep_it + ".target"));
if(dep.isEmpty())
dep = Option::fixPathToTargetOS((*dep_it).toQString(), false);
deps += ' ' + escapeDependencyPath(dep);
dep = (*dep_it).toQString();
deps += ' ' + escapeDependencyPath(Option::fixPathToTargetOS(dep, false));
}
if (config.indexOf("recursive") != -1) {
QSet<QString> recurse;
@ -2690,7 +2690,7 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT
}
if (config.indexOf("phony") != -1)
deps += " FORCE";
t << targ << ":" << deps << "\n";
t << escapeDependencyPath(Option::fixPathToTargetOS(targ, false)) << ":" << deps << "\n";
if(!cmd.isEmpty())
t << "\t" << cmd << endl;
}