LLVM 20.0.0git
|
#include "llvm/WindowsDriver/MSVCPaths.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.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 63 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 175 of file MSVCPaths.cpp.
References value.
Referenced by llvm::findVCToolChainViaRegistry(), llvm::getUniversalCRTSdkDir(), and llvm::getWindowsSDKDir().
|
static |
Definition at line 88 of file MSVCPaths.cpp.
References llvm::sys::path::append(), and getHighestNumericTupleInDirectory().
Referenced by llvm::getUniversalCRTSdkDir(), llvm::getWindowsSDKDir(), and getWindowsSDKDirViaCommandLine().
|
static |
Definition at line 97 of file MSVCPaths.cpp.
References llvm::sys::path::append(), llvm::VersionTuple::empty(), llvm::VersionTuple::getAsString(), getHighestNumericTupleInDirectory(), llvm::VersionTuple::getMajor(), getWindows10SDKVersionFromPath(), and llvm::VersionTuple::tryParse().
Referenced by llvm::getUniversalCRTSdkDir(), and llvm::getWindowsSDKDir().