forked from qt-creator/qt-creator
Clang: Stop forwarding toolchain macros
...for clang code model and clang tools use case. This means that compiler detection code will see clang now instead of the toolchain that is configured in the kit. While providing the toolchain macros worked fine for the general case, it always was problematic for compiler detection code. By not providing the toolchain macros we are more close to the real clang compiler invocation. That is, rely on clang to do the right thing. Allow to go back to old behavior with QTC_CLANG_USE_TOOLCHAIN_MACROS=1 as this will be useful checking differences for debugging. Fixes: QTCREATORBUG-19543 Change-Id: I23ffd761d83f35ca1a22269c3ef07a2dc62358bd Reviewed-by: Marco Bubke <marco.bubke@qt.io> Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
committed by
Ivan Donchevskii
parent
134bb1b8b6
commit
f6b8302efd
@@ -69,7 +69,7 @@ public:
|
||||
LibClangOptionsBuilder(const ProjectPart &projectPart)
|
||||
: CompilerOptionsBuilder(projectPart,
|
||||
UseSystemHeader::No,
|
||||
UseToolchainMacros::Yes,
|
||||
useToolChainMacros(),
|
||||
UseTweakedHeaderPaths::Yes,
|
||||
UseLanguageDefines::No,
|
||||
QString(CLANG_VERSION),
|
||||
|
@@ -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),
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user