Permalink
Browse files

This patch has been committed in Clang mainline.

  • Loading branch information...
1 parent 6828527 commit 204c585f645a3c7fd69e2c00f0a6347aeb351a2e @tritao committed Sep 3, 2012
Showing with 0 additions and 137 deletions.
  1. +0 −137 patches/0001-Expose-function-to-get-Windows-system-include-paths.patch
@@ -1,137 +0,0 @@
-From d854c36426d3018fb504fee0a8b8414e07a18362 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jo=C3=A3o=20Matos?= <ripzonetriton@gmail.com>
-Date: Sat, 18 Aug 2012 14:49:57 +0100
-Subject: [PATCH] Expose function to get Windows system include paths.
-
----
- include/clang/Driver/Util.h | 5 ++++
- lib/Driver/WindowsToolChain.cpp | 56 +++++++++++++++++++++++++----------------
- 2 files changed, 39 insertions(+), 22 deletions(-)
-
-diff --git a/include/clang/Driver/Util.h b/include/clang/Driver/Util.h
-index 65aef4b..8e09585 100644
---- a/include/clang/Driver/Util.h
-+++ b/include/clang/Driver/Util.h
-@@ -11,6 +11,8 @@
- #define CLANG_DRIVER_UTIL_H_
-
- #include "clang/Basic/LLVM.h"
-+#include <string>
-+#include <vector>
-
- namespace clang {
- namespace driver {
-@@ -22,6 +24,9 @@ namespace driver {
- /// ActionList - Type used for lists of actions.
- typedef SmallVector<Action*, 3> ActionList;
-
-+ /// Gets the default Windows system include directories.
-+ std::vector<std::string> GetWindowsSystemIncludeDirs();
-+
- } // end namespace driver
- } // end namespace clang
-
-diff --git a/lib/Driver/WindowsToolChain.cpp b/lib/Driver/WindowsToolChain.cpp
-index 6827034..aba248d 100644
---- a/lib/Driver/WindowsToolChain.cpp
-+++ b/lib/Driver/WindowsToolChain.cpp
-@@ -14,6 +14,7 @@
- #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"
-@@ -304,19 +305,8 @@ static bool getVisualStudioDir(std::string &path) {
-
- #endif // _MSC_VER
-
--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> clang::driver::GetWindowsSystemIncludeDirs() {
-+ std::vector<std::string> Paths;
-
- #ifdef _MSC_VER
- // Honor %INCLUDE%. It should know essential search paths with vcvarsall.bat.
-@@ -330,9 +320,9 @@ void Windows::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
- if (d.size() == 0)
- continue;
- ++n;
-- addSystemInclude(DriverArgs, CC1Args, d);
-+ Paths.push_back(d);
- }
-- if (n) return;
-+ if (n) return Paths;
- }
-
- std::string VSDir;
-@@ -341,25 +331,47 @@ void Windows::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
- // When built with access to the proper Windows APIs, try to actually find
- // the correct include paths first.
- if (getVisualStudioDir(VSDir)) {
-- addSystemInclude(DriverArgs, CC1Args, VSDir + "\\VC\\include");
-+ Paths.push_back(VSDir + "\\VC\\include");
- if (getWindowsSDKDir(WindowsSDKDir))
-- addSystemInclude(DriverArgs, CC1Args, WindowsSDKDir + "\\include");
-+ Paths.push_back(WindowsSDKDir + "\\include");
- else
-- addSystemInclude(DriverArgs, CC1Args,
-- VSDir + "\\VC\\PlatformSDK\\Include");
-- return;
-+ Paths.push_back(VSDir + "\\VC\\PlatformSDK\\Include");
-+ return Paths;
- }
- #endif // _MSC_VER
-
- // As a fallback, select default install paths.
-- const StringRef Paths[] = {
-+ const StringRef FallbackPaths[] = {
- "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"
- };
-- addSystemIncludes(DriverArgs, CC1Args, Paths);
-+
-+ for (int i = 0; i < sizeof(FallbackPaths) / sizeof(FallbackPaths[0]); ++i)
-+ Paths.push_back(Paths[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]);
- }
-
- void Windows::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
---
-1.7.11
-

0 comments on commit 204c585

Please sign in to comment.