diff options
author | Joao Matos <ripzonetriton@gmail.com> | 2012-09-04 17:29:52 +0000 |
---|---|---|
committer | Joao Matos <ripzonetriton@gmail.com> | 2012-09-04 17:29:52 +0000 |
commit | 5d9cb1b9880f3cc5a96950644da6bf9c2b76149f (patch) | |
tree | 7b8633c0d7e08ddcca0fae24528645d2efd05c4f /lib/Driver/WindowsToolChain.cpp | |
parent | 679fc9314c2bde5eb6bea33c790d1a035461e618 (diff) |
Revert r163076 per chandlerc's request.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163146 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/WindowsToolChain.cpp')
-rw-r--r-- | lib/Driver/WindowsToolChain.cpp | 56 |
1 files changed, 22 insertions, 34 deletions
diff --git a/lib/Driver/WindowsToolChain.cpp b/lib/Driver/WindowsToolChain.cpp index ad2605a815..6827034ef4 100644 --- a/lib/Driver/WindowsToolChain.cpp +++ b/lib/Driver/WindowsToolChain.cpp @@ -14,7 +14,6 @@ #include "clang/Driver/Compilation.h" #include "clang/Driver/Driver.h" #include "clang/Driver/Options.h" -#include "clang/Driver/Util.h" #include "clang/Basic/Version.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/Path.h" @@ -305,8 +304,19 @@ static bool getVisualStudioDir(std::string &path) { #endif // _MSC_VER -std::vector<std::string> clang::driver::GetWindowsSystemIncludeDirs() { - std::vector<std::string> Paths; +void Windows::AddClangSystemIncludeArgs(const ArgList &DriverArgs, + ArgStringList &CC1Args) const { + if (DriverArgs.hasArg(options::OPT_nostdinc)) + return; + + if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { + llvm::sys::Path P(getDriver().ResourceDir); + P.appendComponent("include"); + addSystemInclude(DriverArgs, CC1Args, P.str()); + } + + if (DriverArgs.hasArg(options::OPT_nostdlibinc)) + return; #ifdef _MSC_VER // Honor %INCLUDE%. It should know essential search paths with vcvarsall.bat. @@ -320,9 +330,9 @@ std::vector<std::string> clang::driver::GetWindowsSystemIncludeDirs() { if (d.size() == 0) continue; ++n; - Paths.push_back(d); + addSystemInclude(DriverArgs, CC1Args, d); } - if (n) return Paths; + if (n) return; } std::string VSDir; @@ -331,47 +341,25 @@ std::vector<std::string> clang::driver::GetWindowsSystemIncludeDirs() { // When built with access to the proper Windows APIs, try to actually find // the correct include paths first. if (getVisualStudioDir(VSDir)) { - Paths.push_back(VSDir + "\\VC\\include"); + addSystemInclude(DriverArgs, CC1Args, VSDir + "\\VC\\include"); if (getWindowsSDKDir(WindowsSDKDir)) - Paths.push_back(WindowsSDKDir + "\\include"); + addSystemInclude(DriverArgs, CC1Args, WindowsSDKDir + "\\include"); else - Paths.push_back(VSDir + "\\VC\\PlatformSDK\\Include"); - return Paths; + addSystemInclude(DriverArgs, CC1Args, + VSDir + "\\VC\\PlatformSDK\\Include"); + return; } #endif // _MSC_VER // As a fallback, select default install paths. - const StringRef FallbackPaths[] = { + const StringRef Paths[] = { "C:/Program Files/Microsoft Visual Studio 10.0/VC/include", "C:/Program Files/Microsoft Visual Studio 9.0/VC/include", "C:/Program Files/Microsoft Visual Studio 9.0/VC/PlatformSDK/Include", "C:/Program Files/Microsoft Visual Studio 8/VC/include", "C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include" }; - - for (unsigned i = 0; i < sizeof(FallbackPaths) / sizeof(FallbackPaths[0]); ++i) - Paths.push_back(FallbackPaths[i]); - - return Paths; -} - -void Windows::AddClangSystemIncludeArgs(const ArgList &DriverArgs, - ArgStringList &CC1Args) const { - if (DriverArgs.hasArg(options::OPT_nostdinc)) - return; - - if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { - llvm::sys::Path P(getDriver().ResourceDir); - P.appendComponent("include"); - addSystemInclude(DriverArgs, CC1Args, P.str()); - } - - if (DriverArgs.hasArg(options::OPT_nostdlibinc)) - return; - - std::vector<std::string> Paths = driver::GetWindowsSystemIncludeDirs(); - for (size_t i = 0; i < Paths.size(); ++i) - addSystemInclude(DriverArgs, CC1Args, Paths[i]); + addSystemIncludes(DriverArgs, CC1Args, Paths); } void Windows::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, |