diff options
| author | Redbeanw44602 <[email protected]> | 2025-05-15 21:49:24 +0800 |
|---|---|---|
| committer | Redbeanw44602 <[email protected]> | 2025-05-15 21:49:24 +0800 |
| commit | a4690c955b212c46fb2b1575d816e37be6803f77 (patch) | |
| tree | 6b367af05b35a25d057600125d118f747deb5d47 /xmake/modules | |
| parent | 28b6fd526b3d74a2462fac6bbb0c9204402ef59f (diff) | |
add some vcvars for custom msvc sdk.
Diffstat (limited to 'xmake/modules')
| -rw-r--r-- | xmake/modules/detect/sdks/find_vstudio.lua | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/xmake/modules/detect/sdks/find_vstudio.lua b/xmake/modules/detect/sdks/find_vstudio.lua index 2e5b6d5c9..3e687228a 100644 --- a/xmake/modules/detect/sdks/find_vstudio.lua +++ b/xmake/modules/detect/sdks/find_vstudio.lua @@ -109,11 +109,9 @@ function find_build_tools(opt) end local variables = {} - local VCToolsVersion - local vs_toolset = opt.vs_toolset - if vs_toolset and os.isdir(path.join(sdkdir, "VC/Tools/MSVC", vs_toolset)) then - VCToolsVersion = vs_toolset - else + local VCInstallDir = path.join(sdkdir, "VC") + local VCToolsVersion = opt.vs_toolset + if not VCToolsVersion or not os.isdir(path.join(VCInstallDir, "Tools/MSVC", VCToolsVersion)) then -- https://github.com/xmake-io/xmake/issues/6159 local latest_toolset for _, dir in ipairs(os.dirs(path.join(sdkdir, "VC/Tools/MSVC/*"))) do @@ -128,8 +126,9 @@ function find_build_tools(opt) return end end + variables.VCInstallDir = VCInstallDir variables.VCToolsVersion = VCToolsVersion - variables.VCToolsInstallDir = path.join(sdkdir, "VC/Tools/MSVC", VCToolsVersion) + variables.VCToolsInstallDir = path.join(VCInstallDir, "Tools/MSVC", VCToolsVersion) local WindowsSDKVersion local vs_sdkver = opt.vs_sdkver @@ -145,6 +144,11 @@ function find_build_tools(opt) end variables.WindowsSDKVersion = WindowsSDKVersion variables.WindowsSdkDir = path.join(sdkdir, "Windows Kits/10") + variables.WindowsSdkBinPath = path.join(variables.WindowsSdkDir, "bin") + variables.WindowsSdkVerBinPath = path.join(variables.WindowsSdkBinPath, WindowsSDKVersion) + variables.ExtensionSdkDir = path.join(variables.WindowsSdkDir, "ExtensionSdkDir") + variables.UCRTVersion = WindowsSDKVersion + variables.UniversalCRTSdkDir = variables.WindowsSdkDir local includedirs = { path.join(variables.VCToolsInstallDir, "include"), @@ -184,15 +188,25 @@ function find_build_tools(opt) if #lib ~= 0 then local vcvars = { BUILD_TOOLS_ROOT = sdkdir, + VSInstallDir = sdkdir, -- vs runs in a windows ctx, so the envsep is always ";" INCLUDE = path.joinenv(includedirs, ';'), LIB = path.joinenv(lib, ';'), - WindowsSdkDir = variables.WindowsSdkDir, - WindowsSDKVersion = WindowsSDKVersion, - VCToolsInstallDir = variables.VCToolsInstallDir, VSCMD_ARG_HOST_ARCH = "x64", + + VCInstallDir = variables.VCInstallDir, + VCToolsVersion = variables.VCToolsVersion, + VCToolsInstallDir = variables.VCToolsInstallDir, + + WindowsSDKVersion = variables.WindowsSDKVersion, + WindowsSdkDir = variables.WindowsSdkDir, + WindowsSdkBinPath = variables.WindowsSdkBinPath, + WindowsSdkVerBinPath = variables.WindowsSdkVerBinPath, + ExtensionSdkDir = variables.ExtensionSdkDir, + UCRTVersion = variables.UCRTVersion, + UniversalCRTSdkDir = variables.UniversalCRTSdkDir, } local build_tools_bin = {} |
