From 4d27740bafe51de363275a36e81379063dfd8b37 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 1 Jul 2021 17:12:55 +0200 Subject: [PATCH] ClangCodeModel: Prefer ui headers from ExtraCompilers ... to the ones from the actual build. The former are generally more up- to-date. Fixes: QTCREATORBUG-25937 Change-Id: I20859de9816457c340d9e1ec6a3008c536537d8b Reviewed-by: Eike Ziller --- src/plugins/clangcodemodel/clangutils.cpp | 6 ++++-- src/plugins/cpptools/compileroptionsbuilder.cpp | 5 +++++ src/plugins/cpptools/compileroptionsbuilder.h | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp index 95b9364e0c3..6ea7875cab8 100644 --- a/src/plugins/clangcodemodel/clangutils.cpp +++ b/src/plugins/clangcodemodel/clangutils.cpp @@ -100,8 +100,10 @@ private: void addDummyUiHeaderOnDiskIncludePath() { const QString path = ClangModelManagerSupport::instance()->dummyUiHeaderOnDiskDirPath(); - if (!path.isEmpty()) - add({"-I", QDir::toNativeSeparators(path)}); + if (!path.isEmpty()) { + prepend(QDir::toNativeSeparators(path)); + prepend("-I"); + } } }; diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index 030d2b16cd6..09291830b33 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -165,6 +165,11 @@ void CompilerOptionsBuilder::add(const QString &arg, bool gccOnlyOption) add(QStringList{arg}, gccOnlyOption); } +void CompilerOptionsBuilder::prepend(const QString &arg) +{ + m_options.prepend(arg); +} + void CompilerOptionsBuilder::add(const QStringList &args, bool gccOnlyOptions) { m_options.append((gccOnlyOptions && isClStyle()) ? clangArgsForCl(args) : args); diff --git a/src/plugins/cpptools/compileroptionsbuilder.h b/src/plugins/cpptools/compileroptionsbuilder.h index f81c515db0e..c4d8589f178 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.h +++ b/src/plugins/cpptools/compileroptionsbuilder.h @@ -85,6 +85,7 @@ public: // Add custom options void add(const QString &arg, bool gccOnlyOption = false); + void prepend(const QString &arg); void add(const QStringList &args, bool gccOnlyOptions = false); virtual void addExtraOptions() {}