aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/WindowsToolChain.cpp
diff options
context:
space:
mode:
authorJoao Matos <ripzonetriton@gmail.com>2012-09-04 17:29:52 +0000
committerJoao Matos <ripzonetriton@gmail.com>2012-09-04 17:29:52 +0000
commit5d9cb1b9880f3cc5a96950644da6bf9c2b76149f (patch)
tree7b8633c0d7e08ddcca0fae24528645d2efd05c4f /lib/Driver/WindowsToolChain.cpp
parent679fc9314c2bde5eb6bea33c790d1a035461e618 (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.cpp56
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,