99#ifndef LLVM_WINDOWSDRIVER_MSVCPATHS_H
1010#define LLVM_WINDOWSDRIVER_MSVCPATHS_H
1111
12- #include " llvm/Support/Compiler.h"
1312#include " llvm/ADT/SmallString.h"
1413#include " llvm/ADT/StringRef.h"
14+ #include " llvm/Support/Compiler.h"
1515#include " llvm/TargetParser/Triple.h"
1616#include < optional>
1717#include < string>
@@ -45,50 +45,56 @@ LLVM_ABI const char *archToLegacyVCArch(llvm::Triple::ArchType Arch);
4545// Similar to the above function, but for DevDiv internal builds.
4646LLVM_ABI const char *archToDevDivInternalArch (llvm::Triple::ArchType Arch);
4747
48- LLVM_ABI bool appendArchToWindowsSDKLibPath (int SDKMajor, llvm::SmallString<128 > LibPath,
49- llvm::Triple::ArchType Arch,
50- std::string &path);
48+ LLVM_ABI bool appendArchToWindowsSDKLibPath (int SDKMajor,
49+ llvm::SmallString<128 > LibPath,
50+ llvm::Triple::ArchType Arch,
51+ std::string &path);
5152
5253// Get the path to a specific subdirectory in the current toolchain for
5354// a given target architecture.
5455// VS2017 changed the VC toolchain layout, so this should be used instead
5556// of hardcoding paths.
56- LLVM_ABI std::string getSubDirectoryPath (SubDirectoryType Type, ToolsetLayout VSLayout,
57- const std::string &VCToolChainPath,
58- llvm::Triple::ArchType TargetArch,
59- llvm::StringRef SubdirParent = " " );
57+ LLVM_ABI std::string getSubDirectoryPath (SubDirectoryType Type,
58+ ToolsetLayout VSLayout,
59+ const std::string &VCToolChainPath,
60+ llvm::Triple::ArchType TargetArch,
61+ llvm::StringRef SubdirParent = " " );
6062
6163// Check if the Include path of a specified version of Visual Studio contains
6264// specific header files. If not, they are probably shipped with Universal CRT.
63- LLVM_ABI bool useUniversalCRT (ToolsetLayout VSLayout, const std::string &VCToolChainPath,
64- llvm::Triple::ArchType TargetArch,
65- llvm::vfs::FileSystem &VFS);
65+ LLVM_ABI bool useUniversalCRT (ToolsetLayout VSLayout,
66+ const std::string &VCToolChainPath,
67+ llvm::Triple::ArchType TargetArch,
68+ llvm::vfs::FileSystem &VFS);
6669
6770// / Get Windows SDK installation directory.
6871LLVM_ABI bool getWindowsSDKDir (vfs::FileSystem &VFS,
72+ std::optional<llvm::StringRef> WinSdkDir,
73+ std::optional<llvm::StringRef> WinSdkVersion,
74+ std::optional<llvm::StringRef> WinSysRoot,
75+ std::string &Path, int &Major,
76+ std::string &WindowsSDKIncludeVersion,
77+ std::string &WindowsSDKLibVersion);
78+
79+ LLVM_ABI bool
80+ getUniversalCRTSdkDir (vfs::FileSystem &VFS,
6981 std::optional<llvm::StringRef> WinSdkDir,
7082 std::optional<llvm::StringRef> WinSdkVersion,
7183 std::optional<llvm::StringRef> WinSysRoot,
72- std::string &Path, int &Major,
73- std::string &WindowsSDKIncludeVersion,
74- std::string &WindowsSDKLibVersion);
75-
76- LLVM_ABI bool getUniversalCRTSdkDir (vfs::FileSystem &VFS,
77- std::optional<llvm::StringRef> WinSdkDir,
78- std::optional<llvm::StringRef> WinSdkVersion,
79- std::optional<llvm::StringRef> WinSysRoot,
80- std::string &Path, std::string &UCRTVersion);
84+ std::string &Path, std::string &UCRTVersion);
8185
8286// Check command line arguments to try and find a toolchain.
83- LLVM_ABI bool findVCToolChainViaCommandLine (
84- vfs::FileSystem &VFS, std::optional<llvm::StringRef> VCToolsDir,
85- std::optional<llvm::StringRef> VCToolsVersion,
86- std::optional<llvm::StringRef> WinSysRoot, std::string &Path,
87- ToolsetLayout &VSLayout);
87+ LLVM_ABI bool
88+ findVCToolChainViaCommandLine (vfs::FileSystem &VFS,
89+ std::optional<llvm::StringRef> VCToolsDir,
90+ std::optional<llvm::StringRef> VCToolsVersion,
91+ std::optional<llvm::StringRef> WinSysRoot,
92+ std::string &Path, ToolsetLayout &VSLayout);
8893
8994// Check various environment variables to try and find a toolchain.
90- LLVM_ABI bool findVCToolChainViaEnvironment (vfs::FileSystem &VFS, std::string &Path,
91- ToolsetLayout &VSLayout);
95+ LLVM_ABI bool findVCToolChainViaEnvironment (vfs::FileSystem &VFS,
96+ std::string &Path,
97+ ToolsetLayout &VSLayout);
9298
9399// Query the Setup Config server for installs, then pick the newest version
94100// and find its default VC toolchain. If `VCToolsVersion` is specified, that
@@ -104,7 +110,8 @@ findVCToolChainViaSetupConfig(vfs::FileSystem &VFS,
104110// Look in the registry for Visual Studio installs, and use that to get
105111// a toolchain path. VS2017 and newer don't get added to the registry.
106112// So if we find something here, we know that it's an older version.
107- LLVM_ABI bool findVCToolChainViaRegistry (std::string &Path, ToolsetLayout &VSLayout);
113+ LLVM_ABI bool findVCToolChainViaRegistry (std::string &Path,
114+ ToolsetLayout &VSLayout);
108115
109116} // namespace llvm
110117
0 commit comments