qmake: Prevent Obj-C sources from building both as extra compiler and in Xcode

We already assume that if a source is buildable and should end up in OBJECTS we
can let Xcode build it, so we skip this input for the extra compiler.

Change-Id: I17b2408925b8e6513f0fa0d2459ec539bf7381d3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This commit is contained in:
Tor Arne Vestbø 2012-12-22 19:57:10 +01:00
parent 0e548b5856
commit f6d13a45c8

View File

@ -557,10 +557,13 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
for (ProStringList::ConstIterator it = quc.begin(); it != quc.end(); ++it) {
if (project->isEmpty(ProKey(*it + ".output")))
continue;
const ProStringList &inputs = project->values(ProKey(*it + ".input"));
for(int input = 0; input < inputs.size(); ++input) {
if (project->isEmpty(inputs.at(input).toKey()))
ProStringList &inputs = project->values(ProKey(*it + ".input"));
int input = 0;
while (input < inputs.size()) {
if (project->isEmpty(inputs.at(input).toKey())) {
++input;
continue;
}
bool duplicate = false;
bool isObj = project->values(ProKey(*it + ".CONFIG")).indexOf("no_link") == -1;
if (!isObj) {
@ -581,7 +584,14 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
}
sources.append(ProjectBuilderSources(inputs.at(input).toQString(), true,
QString(), (*it).toQString(), isObj));
if (isObj) {
inputs.removeAt(input);
continue;
}
}
++input;
}
}
}