diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2023-08-01 13:21:00 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2023-08-02 13:39:53 +0000 |
commit | 1f7960efe65c284cb954dc8b8e6b72f807b15a3c (patch) | |
tree | a9a55f2fb567cd0fdec53ea37841b6b9795157b6 | |
parent | 8d66d8e510759f202dd99e99aa9f6e2f5b473094 (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.cpp | 19 | ||||
-rw-r--r-- | src/plugins/cppeditor/compileroptionsbuilder.h | 1 |
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 ¯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) { 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; |