forked from qt-creator/qt-creator
C++ support: Consider project-specific target triple
... before creating project parts.
Otherwise we can get wrong includes and defines from the compiler.
Amends 9c86e6746f.
Also do not add -m32 or -m64 for non-x86 targets.
Task-number: QTCREATORBUG-25615
Change-Id: I02da9251c77d45fc8827990a2d59c3ae2c262591
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -137,6 +137,27 @@ ProjectPart::ConstPtr ProjectInfoGenerator::createProjectPart(
|
||||
tcInfo = m_projectUpdateInfo.cxxToolChainInfo;
|
||||
}
|
||||
|
||||
QString explicitTarget;
|
||||
if (!tcInfo.targetTripleIsAuthoritative) {
|
||||
for (int i = 0; i < flags.commandLineFlags.size(); ++i) {
|
||||
const QString &flag = flags.commandLineFlags.at(i);
|
||||
if (flag == "-target") {
|
||||
if (i + 1 < flags.commandLineFlags.size())
|
||||
explicitTarget = flags.commandLineFlags.at(i + 1);
|
||||
break;
|
||||
} else if (flag.startsWith("--target=")) {
|
||||
explicitTarget = flag.mid(9);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!explicitTarget.isEmpty()) {
|
||||
tcInfo.targetTriple = explicitTarget;
|
||||
tcInfo.targetTripleIsAuthoritative = true;
|
||||
if (const Abi abi = Abi::fromString(tcInfo.targetTriple); abi.isValid())
|
||||
tcInfo.abi = abi;
|
||||
}
|
||||
|
||||
return ProjectPart::create(projectFilePath, rawProjectPart, partName, projectFiles,
|
||||
language, languageExtensions, flags, tcInfo);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user