diff options
| author | ruki <[email protected]> | 2025-12-26 10:29:58 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-12-26 10:29:58 +0800 |
| commit | f6bead07b47ebf489125198f97cd398ef2b67d22 (patch) | |
| tree | 624d7f0ef54aef2aac58f478742d5e471658dec2 /xmake/modules | |
| parent | 810f3e5a697f4e546045b80fdb0aa4893717932f (diff) | |
| parent | fd0512ecccfc30a82356747e106ed98db45ae0cf (diff) | |
Merge pull request #7164 from xmake-io/clangcl
fix envs for clang-cl
Diffstat (limited to 'xmake/modules')
| -rw-r--r-- | xmake/modules/core/tools/cl.lua | 15 | ||||
| -rw-r--r-- | xmake/modules/private/utils/toolchain.lua | 9 |
2 files changed, 16 insertions, 8 deletions
diff --git a/xmake/modules/core/tools/cl.lua b/xmake/modules/core/tools/cl.lua index 240189e4c..e5f8f7eaf 100644 --- a/xmake/modules/core/tools/cl.lua +++ b/xmake/modules/core/tools/cl.lua @@ -267,6 +267,13 @@ function nf_language(self, stdname) -- the stdc++ maps if _g.cxxmaps == nil then + -- clang-cl with c++23preview does not work for c++ modules + -- https://github.com/xmake-io/xmake/issues/7169 + local cxx23 = {"-std:c++23", "-std:c++23preview", "-std:c++latest"} + if self:name() == "clang_cl" then + cxx23 = {"-std:c++23", "-std:c++latest"} + end + local cxx2b = cxx23 _g.cxxmaps = { cxx11 = "-std:c++11" @@ -281,10 +288,10 @@ function nf_language(self, stdname) , gnuxx20 = {"-std:c++20", "-std:c++latest"} , cxx2a = {"-std:c++20", "-std:c++latest"} , gnuxx2a = {"-std:c++20", "-std:c++latest"} - , cxx23 = {"-std:c++23", "-std:c++23preview", "-std:c++latest"} - , gnuxx23 = {"-std:c++23", "-std:c++23preview", "-std:c++latest"} - , cxx2b = {"-std:c++23", "-std:c++23preview", "-std:c++latest"} - , gnuxx2b = {"-std:c++23", "-std:c++23preview", "-std:c++latest"} + , cxx23 = cxx23 + , gnuxx23 = cxx23 + , cxx2b = cxx2b + , gnuxx2b = cxx2b , cxx26 = {"-std:c++26", "-std:c++latest"} , gnuxx26 = {"-std:c++26", "-std:c++latest"} , cxxlatest = "-std:c++latest" diff --git a/xmake/modules/private/utils/toolchain.lua b/xmake/modules/private/utils/toolchain.lua index 48aabdffa..263137300 100644 --- a/xmake/modules/private/utils/toolchain.lua +++ b/xmake/modules/private/utils/toolchain.lua @@ -180,14 +180,15 @@ function get_clang_target_flags(toolchain) end -- add vs environments -function add_vsenvs(toolchain, expect_vars) +function add_vsenvs(toolchain, opt) + opt = opt or {} local curenvs = os.getenvs() - expect_vars = expect_vars or {"PATH", "LIB", "INCLUDE", "LIBPATH"} - for _, name in ipairs(expect_vars) do + local varnames = opt.varnames or {"PATH", "LIB", "INCLUDE", "LIBPATH"} + for _, name in ipairs(varnames) do _add_vsenv(toolchain, name, curenvs) end for _, name in ipairs(find_vstudio.get_vcvars()) do - if not table.contains(expect_vars, name:upper()) then + if not table.contains(varnames, name:upper()) then _add_vsenv(toolchain, name, curenvs) end end |
