diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2010-11-09 15:11:19 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2010-11-09 15:11:19 +0000 |
commit | eebe970c36cbc571910587bfc2efbd3bec47a9ff (patch) | |
tree | a392edda0f301db2bab38117fa974461f9b84d45 | |
parent | 966023b58ad779cb447a0cfb751de0c823925340 (diff) | |
download | external_llvm-eebe970c36cbc571910587bfc2efbd3bec47a9ff.zip external_llvm-eebe970c36cbc571910587bfc2efbd3bec47a9ff.tar.gz external_llvm-eebe970c36cbc571910587bfc2efbd3bec47a9ff.tar.bz2 |
System/Path/Windows: Make GetSystemLibraryPaths more generic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118505 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/System/Win32/Path.inc | 28 | ||||
-rw-r--r-- | lib/System/Win32/Win32.h | 2 |
2 files changed, 28 insertions, 2 deletions
diff --git a/lib/System/Win32/Path.inc b/lib/System/Win32/Path.inc index 75f6b71..9187c82 100644 --- a/lib/System/Win32/Path.inc +++ b/lib/System/Win32/Path.inc @@ -240,8 +240,32 @@ Path::GetRootDirectory() { void Path::GetSystemLibraryPaths(std::vector<sys::Path>& Paths) { - Paths.push_back(sys::Path("C:/WINDOWS/SYSTEM32")); - Paths.push_back(sys::Path("C:/WINDOWS")); + char buff[MAX_PATH]; + // Generic form of C:\Windows\System32 + HRESULT res = SHGetFolderPathA(NULL, + CSIDL_FLAG_CREATE | CSIDL_SYSTEM, + NULL, + SHGFP_TYPE_CURRENT, + buff); + if (res != S_OK) { + assert(0 && "Failed to get system directory"); + return; + } + Paths.push_back(sys::Path(buff)); + + // Reset buff. + buff[0] = 0; + // Generic form of C:\Windows + res = SHGetFolderPathA(NULL, + CSIDL_FLAG_CREATE | CSIDL_WINDOWS, + NULL, + SHGFP_TYPE_CURRENT, + buff); + if (res != S_OK) { + assert(0 && "Failed to get windows directory"); + return; + } + Paths.push_back(sys::Path(buff)); } void diff --git a/lib/System/Win32/Win32.h b/lib/System/Win32/Win32.h index d054812..00a7e75 100644 --- a/lib/System/Win32/Win32.h +++ b/lib/System/Win32/Win32.h @@ -18,10 +18,12 @@ // Require at least Windows 2000 API. #define _WIN32_WINNT 0x0500 +#define _WIN32_IE 0x0500 // MinGW at it again. #define WIN32_LEAN_AND_MEAN #include "llvm/Config/config.h" // Get build system configuration settings #include <Windows.h> +#include <ShlObj.h> #include <cassert> #include <string> |