From: Joao Matos Date: Tue, 4 Sep 2012 17:29:52 +0000 (+0000) Subject: Revert r163076 per chandlerc's request. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5d9cb1b9880f3cc5a96950644da6bf9c2b76149f;p=clang Revert r163076 per chandlerc's request. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163146 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Driver/Util.h b/include/clang/Driver/Util.h index 8e0958582c..65aef4b310 100644 --- a/include/clang/Driver/Util.h +++ b/include/clang/Driver/Util.h @@ -11,8 +11,6 @@ #define CLANG_DRIVER_UTIL_H_ #include "clang/Basic/LLVM.h" -#include -#include namespace clang { namespace driver { @@ -24,9 +22,6 @@ namespace driver { /// ActionList - Type used for lists of actions. typedef SmallVector ActionList; - /// Gets the default Windows system include directories. - std::vector GetWindowsSystemIncludeDirs(); - } // end namespace driver } // end namespace clang 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 clang::driver::GetWindowsSystemIncludeDirs() { - std::vector 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 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 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 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,