diff options
| author | star9029 <[email protected]> | 2024-11-14 18:33:37 +0800 |
|---|---|---|
| committer | star9029 <[email protected]> | 2024-11-14 18:33:37 +0800 |
| commit | ef7e37c8833d59455a7d30d7b7b244e3e230ea1d (patch) | |
| tree | 81814b4617c37c687cb616810dde899f86727e4c /xmake/toolchains | |
| parent | 2c9034a9c7b6e567ba6f23089323d4908519d547 (diff) | |
Support custom vc build tools
Diffstat (limited to 'xmake/toolchains')
| -rw-r--r-- | xmake/toolchains/msvc/check.lua | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/xmake/toolchains/msvc/check.lua b/xmake/toolchains/msvc/check.lua index 6d5772733..92e4d18ba 100644 --- a/xmake/toolchains/msvc/check.lua +++ b/xmake/toolchains/msvc/check.lua @@ -100,6 +100,28 @@ function _check_vstudio(toolchain) return vs end +-- check the visual studio +function _check_vc_build_tools(toolchain, bat) + local opt = {} + opt.bat = bat + local vcvarsall = find_vstudio.load_custom_vcenv(opt) + local vcvars = vcvarsall[toolchain:arch()] + if vcvars and vcvars.PATH and vcvars.INCLUDE and vcvars.LIB then + -- save vcvars + toolchain:config_set("vcvars", vcvars) + toolchain:config_set("vcarchs", table.orderkeys(vcvarsall)) + toolchain:config_set("vs_toolset", vcvars.VCToolsVersion) + toolchain:config_set("vs_sdkver", vcvars.WindowsSDKVersion) + + -- check compiler + local cl = find_tool("cl.exe", {version = true, force = true, envs = vcvars}) + if cl and cl.version then + cprint("checking for Microsoft C/C++ Compiler (%s) version ... ${color.success}%s", toolchain:arch(), cl.version) + end + return vcvars + end +end + -- main entry function main(toolchain) @@ -113,7 +135,12 @@ function main(toolchain) local cxx = path.basename(config.get("cxx") or "cl"):lower() local mrc = path.basename(config.get("mrc") or "rc"):lower() if cc == "cl" or cxx == "cl" or mrc == "rc" then - return _check_vstudio(toolchain) + local vc_bat = option.get("vc_bat") + if vc_bat then + return _check_vc_build_tools(toolchain, vc_bat) + else + return _check_vstudio(toolchain) + end end end |
