Clang: Fix include paths for MSVC toolchains

Prevent libclang from using any builtin includes paths or any standard system
directories. The project manager provides us all the necessary information.

Task-number: QTCREATORBUG-15345
Change-Id: I70e2dafea8d049a9b7a32b24ce2d4ce3dac2cd3b
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2015-11-17 16:25:02 +01:00
parent 10e947f65f
commit 82cf0e60fb

View File

@@ -41,6 +41,8 @@
#include <cpptools/cppprojects.h>
#include <cpptools/cppworkingcopy.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <utils/qtcassert.h>
#include <QDir>
@@ -122,7 +124,7 @@ public:
optionsBuilder.addToolchainAndProjectDefines();
optionsBuilder.addResourceDirOptions();
optionsBuilder.addPredefinedMacrosAndHeaderPathsOptions();
optionsBuilder.addWrappedQtHeadersIncludePath();
optionsBuilder.addHeaderPathOptions();
optionsBuilder.addProjectConfigFileInclude();
@@ -154,7 +156,21 @@ private:
return false;
}
void addResourceDirOptions()
void addPredefinedMacrosAndHeaderPathsOptions()
{
if (m_projectPart.toolchainType == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID)
addPredefinedMacrosAndHeaderPathsOptionsForMsvc();
else
addPredefinedMacrosAndHeaderPathsOptionsForNonMsvc();
}
void addPredefinedMacrosAndHeaderPathsOptionsForMsvc()
{
add(QLatin1String("-nostdinc"));
add(QLatin1String("-undef"));
}
void addPredefinedMacrosAndHeaderPathsOptionsForNonMsvc()
{
static const QString resourceDir = getResourceDir();
if (!resourceDir.isEmpty()) {