diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp index e938e547b36..1987ae86799 100644 --- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp +++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp @@ -183,7 +183,9 @@ public: || type == ProjectExplorer::Constants::GCC_TOOLCHAIN_TYPEID) optionsBuilder.addDefine("#define _X86INTRIN_H_INCLUDED\n"); - optionsBuilder.addToolchainAndProjectDefines(); + if (type != ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) + optionsBuilder.addDefines(projectPart.toolchainDefines); + optionsBuilder.addDefines(projectPart.projectDefines); optionsBuilder.undefineClangVersionMacrosForMsvc(); optionsBuilder.undefineCppLanguageFeatureMacrosForMsvc2015(); optionsBuilder.addHeaderPathOptions(); diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index faf78f925d7..a5bf1ad0b65 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -137,10 +137,15 @@ void CompilerOptionsBuilder::addHeaderPathOptions(bool addAsNativePath) void CompilerOptionsBuilder::addToolchainAndProjectDefines() { - QByteArray extendedDefines = m_projectPart.toolchainDefines + m_projectPart.projectDefines; + addDefines(m_projectPart.toolchainDefines); + addDefines(m_projectPart.projectDefines); +} + +void CompilerOptionsBuilder::addDefines(const QByteArray &defineDirectives) +{ QStringList result; - foreach (QByteArray def, extendedDefines.split('\n')) { + foreach (QByteArray def, defineDirectives.split('\n')) { if (def.isEmpty() || excludeDefineLine(def)) continue; diff --git a/src/plugins/cpptools/compileroptionsbuilder.h b/src/plugins/cpptools/compileroptionsbuilder.h index 4ef43b53da4..739db8b5f67 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.h +++ b/src/plugins/cpptools/compileroptionsbuilder.h @@ -48,6 +48,7 @@ public: virtual void enableExceptions(); void addHeaderPathOptions(bool addAsNativePath = false); void addToolchainAndProjectDefines(); + void addDefines(const QByteArray &defineDirectives); virtual void addLanguageOption(ProjectFile::Kind fileKind); virtual void addOptionsForLanguage(bool checkForBorlandExtensions = true);