Clang: Never use toolchain defines

The known cases provide enough flags not to require
toolchain defines.

Change-Id: Ia7e08a90eca6ea9474db40683ac1e63236f8643d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Ivan Donchevskii
2019-01-11 15:50:39 +01:00
parent 0348009e0e
commit 0679c2ff25
5 changed files with 8 additions and 76 deletions

View File

@@ -96,14 +96,12 @@ QStringList clangArgsForCl(const QStringList &args)
CompilerOptionsBuilder::CompilerOptionsBuilder(const ProjectPart &projectPart,
UseSystemHeader useSystemHeader,
UseToolchainMacros useToolchainMacros,
UseTweakedHeaderPaths useTweakedHeaderPaths,
UseLanguageDefines useLanguageDefines,
const QString &clangVersion,
const QString &clangResourceDirectory)
: m_projectPart(projectPart)
, m_useSystemHeader(useSystemHeader)
, m_useToolchainMacros(useToolchainMacros)
, m_useTweakedHeaderPaths(useTweakedHeaderPaths)
, m_useLanguageDefines(useLanguageDefines)
, m_clangVersion(clangVersion)
@@ -141,12 +139,11 @@ QStringList CompilerOptionsBuilder::build(ProjectFile::Kind fileKind,
addExtraCodeModelFlags();
addMsvcCompatibilityVersion();
addToolchainAndProjectMacros();
addProjectMacros();
undefineClangVersionMacrosForMsvc();
undefineCppLanguageFeatureMacrosForMsvc2015();
addDefineFunctionMacrosMsvc();
addToolchainFlags();
addHeaderPathOptions();
addExtraOptions();
@@ -330,10 +327,8 @@ void CompilerOptionsBuilder::addPrecompiledHeaderOptions(UsePrecompiledHeaders u
}
}
void CompilerOptionsBuilder::addToolchainAndProjectMacros()
void CompilerOptionsBuilder::addProjectMacros()
{
if (m_useToolchainMacros == UseToolchainMacros::Yes)
addMacros(m_projectPart.toolChainMacros);
addMacros(m_projectPart.projectMacros);
}
@@ -662,16 +657,6 @@ void CompilerOptionsBuilder::addWrappedQtHeadersIncludePath(QStringList &list) c
}
}
void CompilerOptionsBuilder::addToolchainFlags()
{
// In case of MSVC we need builtin clang defines to correctly handle clang includes
if (m_projectPart.toolchainType != ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID
&& m_projectPart.toolchainType != ProjectExplorer::Constants::CLANG_CL_TOOLCHAIN_TYPEID) {
if (m_useToolchainMacros == UseToolchainMacros::Yes)
add("-undef");
}
}
void CompilerOptionsBuilder::addProjectConfigFileInclude()
{
if (!m_projectPart.projectConfigFile.isEmpty()) {
@@ -701,12 +686,6 @@ void CompilerOptionsBuilder::undefineClangVersionMacrosForMsvc()
}
}
UseToolchainMacros CompilerOptionsBuilder::useToolChainMacros()
{
return qEnvironmentVariableIntValue("QTC_CLANG_USE_TOOLCHAIN_MACROS") ? UseToolchainMacros::Yes
: UseToolchainMacros::No;
}
void CompilerOptionsBuilder::reset()
{
m_options.clear();

View File

@@ -45,7 +45,6 @@ class CPPTOOLS_EXPORT CompilerOptionsBuilder
public:
CompilerOptionsBuilder(const ProjectPart &projectPart,
UseSystemHeader useSystemHeader = UseSystemHeader::No,
UseToolchainMacros useToolchainMacros = UseToolchainMacros::Yes,
UseTweakedHeaderPaths useTweakedHeaderPaths = UseTweakedHeaderPaths::Yes,
UseLanguageDefines useLanguageDefines = UseLanguageDefines::No,
const QString &clangVersion = QString(),
@@ -55,10 +54,9 @@ public:
QStringList options() const { return m_options; }
// Add options based on project part
virtual void addToolchainAndProjectMacros();
virtual void addProjectMacros();
void addSyntaxOnly();
void addWordWidth();
void addToolchainFlags();
void addHeaderPathOptions();
void addPrecompiledHeaderOptions(UsePrecompiledHeaders usePrecompiledHeaders);
void addMacros(const ProjectExplorer::Macros &macros);
@@ -98,7 +96,6 @@ private:
const ProjectPart &m_projectPart;
const UseSystemHeader m_useSystemHeader;
const UseToolchainMacros m_useToolchainMacros;
const UseTweakedHeaderPaths m_useTweakedHeaderPaths;
const UseLanguageDefines m_useLanguageDefines;