LLVM 22.0.0git
MSVCPaths.cpp File Reference

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.
LLVM_ABI const charllvm::archToWindowsSDKArch (llvm::Triple::ArchType Arch)
LLVM_ABI const charllvm::archToLegacyVCArch (llvm::Triple::ArchType Arch)
LLVM_ABI const charllvm::archToDevDivInternalArch (llvm::Triple::ArchType Arch)
LLVM_ABI bool llvm::appendArchToWindowsSDKLibPath (int SDKMajor, llvm::SmallString< 128 > LibPath, llvm::Triple::ArchType Arch, std::string &path)
LLVM_ABI std::string llvm::getSubDirectoryPath (SubDirectoryType Type, ToolsetLayout VSLayout, const std::string &VCToolChainPath, llvm::Triple::ArchType TargetArch, llvm::StringRef SubdirParent="")
LLVM_ABI 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)
LLVM_ABI 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)
LLVM_ABI bool llvm::findVCToolChainViaRegistry (std::string &Path, ToolsetLayout &VSLayout)

Function Documentation

◆ getHighestNumericTupleInDirectory()

◆ getSystemRegistryString()

bool getSystemRegistryString ( const char * keyPath,
const char * valueName,
std::string & value,
std::string * phValue )
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 175 of file MSVCPaths.cpp.

References llvm::isDigit().

Referenced by llvm::findVCToolChainViaRegistry(), llvm::getUniversalCRTSdkDir(), and llvm::getWindowsSDKDir().

◆ getWindows10SDKVersionFromPath()

bool getWindows10SDKVersionFromPath ( llvm::vfs::FileSystem & VFS,
const std::string & SDKPath,
std::string & SDKVersion )
static

◆ getWindowsSDKDirViaCommandLine()

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