summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/WindowsToolChain.cpp
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2012-03-13 00:02:21 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2012-03-13 00:02:21 +0000
commitb5ee8a6deb2b330c46f9baecaa821bc2456edb22 (patch)
tree153ec5c023671245adfdb260bc0c00dccd7b8426 /clang/lib/Driver/WindowsToolChain.cpp
parentc114e0cf3c7f4b84cfff834ecd144d25ccb31ba9 (diff)
downloadbcm5719-llvm-b5ee8a6deb2b330c46f9baecaa821bc2456edb22.tar.gz
bcm5719-llvm-b5ee8a6deb2b330c46f9baecaa821bc2456edb22.zip
[msvc] Honor %INCLUDE%. It should know essential search paths with vcvarsall.bat.
FYI, On VS10, %INCLUDE% contains; (VS10)\VC\INCLUDE (VS10)\VC\ATLMFC\INCLUDE (SDK70A)\include On VS11, (VS11)\VC\INCLUDE (VS11)\VC\ATLMFC\INCLUDE (SDK80)\include\shared (SDK80)\include\um (SDK80)\include\winrt FIXME: It may be enabled also on mingw. llvm-svn: 152589
Diffstat (limited to 'clang/lib/Driver/WindowsToolChain.cpp')
-rw-r--r--clang/lib/Driver/WindowsToolChain.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/clang/lib/Driver/WindowsToolChain.cpp b/clang/lib/Driver/WindowsToolChain.cpp
index 70bd4f1fc36..6827034ef4c 100644
--- a/clang/lib/Driver/WindowsToolChain.cpp
+++ b/clang/lib/Driver/WindowsToolChain.cpp
@@ -318,10 +318,26 @@ void Windows::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
if (DriverArgs.hasArg(options::OPT_nostdlibinc))
return;
+#ifdef _MSC_VER
+ // Honor %INCLUDE%. It should know essential search paths with vcvarsall.bat.
+ if (const char *cl_include_dir = getenv("INCLUDE")) {
+ SmallVector<StringRef, 8> Dirs;
+ StringRef(cl_include_dir).split(Dirs, ";");
+ int n = 0;
+ for (SmallVectorImpl<StringRef>::iterator I = Dirs.begin(), E = Dirs.end();
+ I != E; ++I) {
+ StringRef d = *I;
+ if (d.size() == 0)
+ continue;
+ ++n;
+ addSystemInclude(DriverArgs, CC1Args, d);
+ }
+ if (n) return;
+ }
+
std::string VSDir;
std::string WindowsSDKDir;
-#ifdef _MSC_VER
// When built with access to the proper Windows APIs, try to actually find
// the correct include paths first.
if (getVisualStudioDir(VSDir)) {
OpenPOWER on IntegriCloud