forked from qt-creator/qt-creator
CppEditor: Allow filtering of unsupported -mcpu flags
Also hardcode one that we use with Boot2Qt. Fixes: QTCREATORBUG-29304 Change-Id: I3dd425cae5eb87ad5e14a607431d9f7225efc566 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -64,6 +64,13 @@ static QString defineDirectiveToDefineOption(const Macro ¯o)
|
||||
return QString::fromUtf8(option);
|
||||
}
|
||||
|
||||
static QStringList cpuBlacklist()
|
||||
{
|
||||
QStringList blacklist = qtcEnvironmentVariable("QTC_CLANGD_CPU_BLACKLIST")
|
||||
.split(':', Qt::SkipEmptyParts);
|
||||
return blacklist << "cortex-a72.cortex-a53"; // See QTCREATORBUG-29304
|
||||
}
|
||||
|
||||
QStringList XclangArgs(const QStringList &args)
|
||||
{
|
||||
QStringList options;
|
||||
@@ -270,6 +277,7 @@ void CompilerOptionsBuilder::addPicIfCompilerFlagsContainsIt()
|
||||
void CompilerOptionsBuilder::addCompilerFlags()
|
||||
{
|
||||
add(m_compilerFlags.flags);
|
||||
removeUnsupportedCpuFlags();
|
||||
}
|
||||
|
||||
void CompilerOptionsBuilder::addMsvcExceptions()
|
||||
@@ -375,6 +383,17 @@ void CompilerOptionsBuilder::addIncludeFile(const QString &file)
|
||||
}
|
||||
}
|
||||
|
||||
void CompilerOptionsBuilder::removeUnsupportedCpuFlags()
|
||||
{
|
||||
const QStringList blacklist = cpuBlacklist();
|
||||
for (auto it = m_options.begin(); it != m_options.end();) {
|
||||
if (it->startsWith("-mcpu=") && blacklist.contains(it->mid(6)))
|
||||
it = m_options.erase(it);
|
||||
else
|
||||
++it;
|
||||
}
|
||||
}
|
||||
|
||||
void CompilerOptionsBuilder::addIncludedFiles(const QStringList &files)
|
||||
{
|
||||
for (const QString &file : files) {
|
||||
|
@@ -87,6 +87,7 @@ private:
|
||||
QStringList wrappedMingwHeadersIncludePath() const;
|
||||
QByteArray msvcVersion() const;
|
||||
void addIncludeFile(const QString &file);
|
||||
void removeUnsupportedCpuFlags();
|
||||
|
||||
private:
|
||||
const ProjectPart &m_projectPart;
|
||||
|
Reference in New Issue
Block a user