diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp index 91770b95578..daed860fb90 100644 --- a/src/plugins/clangcodemodel/clangutils.cpp +++ b/src/plugins/clangcodemodel/clangutils.cpp @@ -69,7 +69,7 @@ public: LibClangOptionsBuilder(const ProjectPart &projectPart) : CompilerOptionsBuilder(projectPart, UseSystemHeader::No, - UseToolchainMacros::Yes, + useToolChainMacros(), UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, QString(CLANG_VERSION), diff --git a/src/plugins/clangtools/clangtoolruncontrol.cpp b/src/plugins/clangtools/clangtoolruncontrol.cpp index 1a01f0e3112..681cd8568d3 100644 --- a/src/plugins/clangtools/clangtoolruncontrol.cpp +++ b/src/plugins/clangtools/clangtoolruncontrol.cpp @@ -193,7 +193,7 @@ static AnalyzeUnits toAnalyzeUnits(const FileInfos &fileInfos) for (const FileInfo &fileInfo : fileInfos) { CompilerOptionsBuilder optionsBuilder(*fileInfo.projectPart, UseSystemHeader::No, - UseToolchainMacros::Yes, + CompilerOptionsBuilder::useToolChainMacros(), UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, QString(CLANG_VERSION), diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index 8f561772eb7..b70f5ca5bdb 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -117,7 +117,6 @@ QStringList CompilerOptionsBuilder::build(ProjectFile::Kind fileKind, undefineClangVersionMacrosForMsvc(); undefineCppLanguageFeatureMacrosForMsvc2015(); addDefineFunctionMacrosMsvc(); - addBoostWorkaroundMacros(); addToolchainFlags(); addPrecompiledHeaderOptions(usePrecompiledHeaders); @@ -596,14 +595,6 @@ void CompilerOptionsBuilder::addDefineFunctionMacrosMsvc() } } -void CompilerOptionsBuilder::addBoostWorkaroundMacros() -{ - if (m_projectPart.toolchainType != ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID - && m_projectPart.toolchainType != ProjectExplorer::Constants::CLANG_CL_TOOLCHAIN_TYPEID) { - addMacros({{"BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING", "(39, 1, true, \"T = \")"}}); - } -} - QString CompilerOptionsBuilder::includeDirOptionForPath(const QString &path) const { if (m_useSystemHeader == UseSystemHeader::No @@ -707,4 +698,10 @@ void CompilerOptionsBuilder::undefineClangVersionMacrosForMsvc() } } +UseToolchainMacros CompilerOptionsBuilder::useToolChainMacros() +{ + return qEnvironmentVariableIntValue("QTC_CLANG_USE_TOOLCHAIN_MACROS") ? UseToolchainMacros::Yes + : UseToolchainMacros::No; +} + } // namespace CppTools diff --git a/src/plugins/cpptools/compileroptionsbuilder.h b/src/plugins/cpptools/compileroptionsbuilder.h index 5228993ffa0..fbd038f474e 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.h +++ b/src/plugins/cpptools/compileroptionsbuilder.h @@ -69,7 +69,6 @@ public: void addMsvcCompatibilityVersion(); void undefineCppLanguageFeatureMacrosForMsvc2015(); void addDefineFunctionMacrosMsvc(); - void addBoostWorkaroundMacros(); void addProjectConfigFileInclude(); void undefineClangVersionMacrosForMsvc(); @@ -78,6 +77,8 @@ public: void add(const QString &option) { m_options.append(option); } virtual void addExtraOptions() {} + static UseToolchainMacros useToolChainMacros(); + private: bool excludeDefineDirective(const ProjectExplorer::Macro ¯o) const; QString includeDirOptionForPath(const QString &path) const;