summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/compileroptionsbuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/compileroptionsbuilder.cpp')
-rw-r--r--src/plugins/cpptools/compileroptionsbuilder.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp
index 812de0fb59..8ec63484f9 100644
--- a/src/plugins/cpptools/compileroptionsbuilder.cpp
+++ b/src/plugins/cpptools/compileroptionsbuilder.cpp
@@ -43,14 +43,14 @@ namespace CppTools {
CompilerOptionsBuilder::CompilerOptionsBuilder(const ProjectPart &projectPart,
UseSystemHeader useSystemHeader,
- SkipBuiltIn skipBuiltInHeaderPaths,
+ SkipBuiltIn skipBuiltInHeaderPathsAndDefines,
QString clangVersion,
QString clangResourceDirectory)
: m_projectPart(projectPart)
, m_useSystemHeader(useSystemHeader)
, m_clangVersion(clangVersion)
, m_clangResourceDirectory(clangResourceDirectory)
- , m_skipBuiltInHeaderPaths(skipBuiltInHeaderPaths)
+ , m_skipBuiltInHeaderPathsAndDefines(skipBuiltInHeaderPathsAndDefines)
{
}
@@ -85,7 +85,7 @@ QStringList CompilerOptionsBuilder::build(CppTools::ProjectFile::Kind fileKind,
undefineCppLanguageFeatureMacrosForMsvc2015();
addDefineFunctionMacrosMsvc();
- addGlobalUndef();
+ addToolchainFlags();
addPrecompiledHeaderOptions(pchUsage);
addHeaderPathOptions();
addProjectConfigFileInclude();
@@ -305,7 +305,7 @@ void CompilerOptionsBuilder::addHeaderPathOptions()
m_options.append(includes);
m_options.append(systemIncludes);
- if (m_skipBuiltInHeaderPaths == SkipBuiltIn::Yes)
+ if (m_skipBuiltInHeaderPathsAndDefines == SkipBuiltIn::Yes)
return;
// Exclude all built-in includes except Clang resource directory.
@@ -351,7 +351,8 @@ void CompilerOptionsBuilder::addPrecompiledHeaderOptions(PchUsage pchUsage)
void CompilerOptionsBuilder::addToolchainAndProjectMacros()
{
- addMacros(m_projectPart.toolChainMacros);
+ if (m_skipBuiltInHeaderPathsAndDefines == SkipBuiltIn::No)
+ addMacros(m_projectPart.toolChainMacros);
addMacros(m_projectPart.projectMacros);
}
@@ -634,12 +635,15 @@ void CompilerOptionsBuilder::addWrappedQtHeadersIncludePath(QStringList &list)
}
}
-void CompilerOptionsBuilder::addGlobalUndef()
+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) {
- add("-undef");
+ && m_projectPart.toolchainType != ProjectExplorer::Constants::CLANG_CL_TOOLCHAIN_TYPEID) {
+ if (m_skipBuiltInHeaderPathsAndDefines == SkipBuiltIn::No)
+ add("-undef");
+ else
+ add("-fPIC");
}
}