CppTools: Split CppTools::UseBuiltin in two options

...for clarity.

No behavior change.

Change-Id: Id0334bc79b97a8ff53b37089e337530c9a01b1d4
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
Nikolai Kosjar
2018-11-30 12:15:07 +01:00
parent e57c1268ee
commit c7c800a73e
5 changed files with 34 additions and 18 deletions

View File

@@ -73,13 +73,15 @@ static QString defineDirectiveToDefineOption(const ProjectExplorer::Macro &macro
CompilerOptionsBuilder::CompilerOptionsBuilder(const ProjectPart &projectPart,
UseSystemHeader useSystemHeader,
UseBuiltin useBuiltInHeaderPathsAndDefines,
UseToolchainMacros useToolchainMacros,
UseTweakedHeaderPaths useTweakedHeaderPaths,
UseLanguageDefines useLanguageDefines,
const QString &clangVersion,
const QString &clangResourceDirectory)
: m_projectPart(projectPart)
, m_useSystemHeader(useSystemHeader)
, m_useBuiltInHeaderPathsAndDefines(useBuiltInHeaderPathsAndDefines)
, m_useToolchainMacros(useToolchainMacros)
, m_useTweakedHeaderPaths(useTweakedHeaderPaths)
, m_useLanguageDefines(useLanguageDefines)
, m_clangVersion(clangVersion)
, m_clangResourceDirectory(clangResourceDirectory)
@@ -279,7 +281,7 @@ static int includeIndexForResourceDirectory(const QStringList &options, bool isM
void CompilerOptionsBuilder::insertWrappedQtHeaders()
{
if (m_useBuiltInHeaderPathsAndDefines == UseBuiltin::No)
if (m_useTweakedHeaderPaths == UseTweakedHeaderPaths::No)
return;
QStringList wrappedQtHeaders;
@@ -343,7 +345,7 @@ void CompilerOptionsBuilder::addHeaderPathOptions()
m_options.append(includes);
m_options.append(systemIncludes);
if (m_useBuiltInHeaderPathsAndDefines == UseBuiltin::No)
if (m_useTweakedHeaderPaths == UseTweakedHeaderPaths::No)
return;
// Exclude all built-in includes except Clang resource directory.
@@ -391,7 +393,7 @@ void CompilerOptionsBuilder::addPrecompiledHeaderOptions(UsePrecompiledHeaders u
void CompilerOptionsBuilder::addToolchainAndProjectMacros()
{
if (m_useBuiltInHeaderPathsAndDefines == UseBuiltin::Yes)
if (m_useToolchainMacros == UseToolchainMacros::Yes)
addMacros(m_projectPart.toolChainMacros);
addMacros(m_projectPart.projectMacros);
}
@@ -673,7 +675,7 @@ 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_useBuiltInHeaderPathsAndDefines == UseBuiltin::Yes)
if (m_useToolchainMacros == UseToolchainMacros::Yes)
add("-undef");
else
add("-fPIC");

View File

@@ -33,7 +33,8 @@ namespace CppTools {
enum class UsePrecompiledHeaders : char { Yes, No };
enum class UseSystemHeader : char { Yes, No };
enum class UseBuiltin : char { Yes, No };
enum class UseTweakedHeaderPaths : char { Yes, No };
enum class UseToolchainMacros : char { Yes, No };
enum class UseLanguageDefines : char { Yes, No };
class CPPTOOLS_EXPORT CompilerOptionsBuilder
@@ -41,7 +42,8 @@ class CPPTOOLS_EXPORT CompilerOptionsBuilder
public:
CompilerOptionsBuilder(const ProjectPart &projectPart,
UseSystemHeader useSystemHeader = UseSystemHeader::No,
UseBuiltin useBuiltInHeaderPathsAndDefines = UseBuiltin::Yes,
UseToolchainMacros useToolchainMacros = UseToolchainMacros::Yes,
UseTweakedHeaderPaths useTweakedHeaderPaths = UseTweakedHeaderPaths::Yes,
UseLanguageDefines useLanguageDefines = UseLanguageDefines::No,
const QString &clangVersion = QString(),
const QString &clangResourceDirectory = QString());
@@ -85,7 +87,8 @@ private:
const ProjectPart &m_projectPart;
const UseSystemHeader m_useSystemHeader;
const UseBuiltin m_useBuiltInHeaderPathsAndDefines;
const UseToolchainMacros m_useToolchainMacros;
const UseTweakedHeaderPaths m_useTweakedHeaderPaths;
const UseLanguageDefines m_useLanguageDefines;
const QString m_clangVersion;