forked from qt-creator/qt-creator
		
	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:
		@@ -73,13 +73,15 @@ static QString defineDirectiveToDefineOption(const ProjectExplorer::Macro ¯o
 | 
			
		||||
 | 
			
		||||
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");
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user