LLVM 17.0.0git
|
#include "llvm/WindowsDriver/MSVCPaths.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/Process.h"
#include "llvm/Support/Program.h"
#include "llvm/Support/VersionTuple.h"
#include "llvm/Support/VirtualFileSystem.h"
#include "llvm/TargetParser/Host.h"
#include "llvm/TargetParser/Triple.h"
#include <optional>
#include <string>
Go to the source code of this file.
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Functions | |
static std::string | getHighestNumericTupleInDirectory (llvm::vfs::FileSystem &VFS, llvm::StringRef Directory) |
static bool | getWindows10SDKVersionFromPath (llvm::vfs::FileSystem &VFS, const std::string &SDKPath, std::string &SDKVersion) |
static bool | getWindowsSDKDirViaCommandLine (llvm::vfs::FileSystem &VFS, std::optional< llvm::StringRef > WinSdkDir, std::optional< llvm::StringRef > WinSdkVersion, std::optional< llvm::StringRef > WinSysRoot, std::string &Path, int &Major, std::string &Version) |
static bool | getSystemRegistryString (const char *keyPath, const char *valueName, std::string &value, std::string *phValue) |
Read registry string. | |
const char * | llvm::archToWindowsSDKArch (llvm::Triple::ArchType Arch) |
const char * | llvm::archToLegacyVCArch (llvm::Triple::ArchType Arch) |
const char * | llvm::archToDevDivInternalArch (llvm::Triple::ArchType Arch) |
bool | llvm::appendArchToWindowsSDKLibPath (int SDKMajor, llvm::SmallString< 128 > LibPath, llvm::Triple::ArchType Arch, std::string &path) |
std::string | llvm::getSubDirectoryPath (SubDirectoryType Type, ToolsetLayout VSLayout, const std::string &VCToolChainPath, llvm::Triple::ArchType TargetArch, llvm::StringRef SubdirParent="") |
bool | llvm::useUniversalCRT (ToolsetLayout VSLayout, const std::string &VCToolChainPath, llvm::Triple::ArchType TargetArch, llvm::vfs::FileSystem &VFS) |
bool | llvm::getWindowsSDKDir (vfs::FileSystem &VFS, std::optional< StringRef > WinSdkDir, std::optional< StringRef > WinSdkVersion, std::optional< StringRef > WinSysRoot, std::string &Path, int &Major, std::string &WindowsSDKIncludeVersion, std::string &WindowsSDKLibVersion) |
Get Windows SDK installation directory. | |
bool | llvm::getUniversalCRTSdkDir (vfs::FileSystem &VFS, std::optional< StringRef > WinSdkDir, std::optional< StringRef > WinSdkVersion, std::optional< StringRef > WinSysRoot, std::string &Path, std::string &UCRTVersion) |
bool | llvm::findVCToolChainViaCommandLine (vfs::FileSystem &VFS, std::optional< StringRef > VCToolsDir, std::optional< StringRef > VCToolsVersion, std::optional< StringRef > WinSysRoot, std::string &Path, ToolsetLayout &VSLayout) |
bool | llvm::findVCToolChainViaEnvironment (vfs::FileSystem &VFS, std::string &Path, ToolsetLayout &VSLayout) |
bool | llvm::findVCToolChainViaSetupConfig (vfs::FileSystem &VFS, std::optional< StringRef > VCToolsVersion, std::string &Path, ToolsetLayout &VSLayout) |
bool | llvm::findVCToolChainViaRegistry (std::string &Path, ToolsetLayout &VSLayout) |
|
static |
Definition at line 62 of file MSVCPaths.cpp.
References llvm::vfs::FileSystem::dir_begin(), llvm::sys::path::filename(), llvm::vfs::FileSystem::status(), llvm::StringRef::str(), and llvm::VersionTuple::tryParse().
Referenced by llvm::findVCToolChainViaCommandLine(), getWindows10SDKVersionFromPath(), and getWindowsSDKDirViaCommandLine().
|
static |
Read registry string.
This also supports a means to look for high-versioned keys by use of a $VERSION placeholder in the key path. $VERSION in the key path is a placeholder for the version number, causing the highest value path to be searched for and used. I.e. "SOFTWARE\\Microsoft\\VisualStudio\\$VERSION". There can be additional characters in the component. Only the numeric characters are compared. This function only searches HKLM.
Definition at line 174 of file MSVCPaths.cpp.
Referenced by llvm::findVCToolChainViaRegistry(), llvm::getUniversalCRTSdkDir(), and llvm::getWindowsSDKDir().
|
static |
Definition at line 87 of file MSVCPaths.cpp.
References llvm::sys::path::append(), and getHighestNumericTupleInDirectory().
Referenced by llvm::getUniversalCRTSdkDir(), llvm::getWindowsSDKDir(), and getWindowsSDKDirViaCommandLine().
|
static |
Definition at line 96 of file MSVCPaths.cpp.
References llvm::sys::path::append(), llvm::VersionTuple::empty(), llvm::VersionTuple::getAsString(), getHighestNumericTupleInDirectory(), llvm::VersionTuple::getMajor(), getWindows10SDKVersionFromPath(), llvm::SmallString< InternalLen >::str(), and llvm::VersionTuple::tryParse().
Referenced by llvm::getUniversalCRTSdkDir(), and llvm::getWindowsSDKDir().