aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2023-08-01 13:21:00 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2023-08-02 13:39:53 +0000
commit1f7960efe65c284cb954dc8b8e6b72f807b15a3c (patch)
treea9a55f2fb567cd0fdec53ea37841b6b9795157b6
parent8d66d8e510759f202dd99e99aa9f6e2f5b473094 (diff)
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>
-rw-r--r--src/plugins/cppeditor/compileroptionsbuilder.cpp19
-rw-r--r--src/plugins/cppeditor/compileroptionsbuilder.h1
2 files changed, 20 insertions, 0 deletions
diff --git a/src/plugins/cppeditor/compileroptionsbuilder.cpp b/src/plugins/cppeditor/compileroptionsbuilder.cpp
index 8b7dd11b2d..317cf7b25d 100644
--- a/src/plugins/cppeditor/compileroptionsbuilder.cpp
+++ b/src/plugins/cppeditor/compileroptionsbuilder.cpp
@@ -64,6 +64,13 @@ static QString defineDirectiveToDefineOption(const Macro &macro)
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) {
diff --git a/src/plugins/cppeditor/compileroptionsbuilder.h b/src/plugins/cppeditor/compileroptionsbuilder.h
index d47a7e87e3..55d775120a 100644
--- a/src/plugins/cppeditor/compileroptionsbuilder.h
+++ b/src/plugins/cppeditor/compileroptionsbuilder.h
@@ -87,6 +87,7 @@ private:
QStringList wrappedMingwHeadersIncludePath() const;
QByteArray msvcVersion() const;
void addIncludeFile(const QString &file);
+ void removeUnsupportedCpuFlags();
private:
const ProjectPart &m_projectPart;