diff options
| author | star9029 <[email protected]> | 2024-11-18 21:02:17 +0800 |
|---|---|---|
| committer | star9029 <[email protected]> | 2024-11-18 21:02:17 +0800 |
| commit | e06529223a2385e5bd56a9db2b95ed2262da1ae1 (patch) | |
| tree | cdd22ceb46ee364511a259c85a6aea1e524a2dc5 | |
| parent | 38581f8517c86a814a432b3c2bf2517c11910dec (diff) | |
improve include/lib for clang
| -rw-r--r-- | xmake/toolchains/clang/load.lua | 37 |
1 files changed, 16 insertions, 21 deletions
diff --git a/xmake/toolchains/clang/load.lua b/xmake/toolchains/clang/load.lua index 0df22a398..695c3748a 100644 --- a/xmake/toolchains/clang/load.lua +++ b/xmake/toolchains/clang/load.lua @@ -42,7 +42,11 @@ function _add_vsenv(toolchain, name, curenvs) break end end - toolchain:add("runenvs", name, table.unwrap(path.splitenv(new))) + if name == "INCLUDE" or name == "LIB" then + toolchain:add("runenvs", name, table.concat(path.splitenv(new), ";")) + else + toolchain:add("runenvs", name, table.unwrap(path.splitenv(new))) + end end end @@ -63,28 +67,19 @@ function main(toolchain, suffix) if toolchain:is_plat("windows") then target = target .. "-windows-msvc" - if is_host("windows") then - -- add vs environments - local expect_vars = {"PATH", "LIB", "INCLUDE", "LIBPATH"} - local curenvs = os.getenvs() - for _, name in ipairs(expect_vars) do + -- add vs environments + local expect_vars = {"PATH", "LIB", "INCLUDE", "LIBPATH"} + local curenvs = os.getenvs() + for _, name in ipairs(expect_vars) 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 _add_vsenv(toolchain, name, curenvs) end - for _, name in ipairs(find_vstudio.get_vcvars()) do - if not table.contains(expect_vars, name:upper()) then - _add_vsenv(toolchain, name, curenvs) - end - end - elseif is_host("linux") then - local vcvars = toolchain:config("vcvars") - if vcvars then - for _, dir in ipairs(table.wrap(path.splitenv(vcvars["INCLUDE"]))) do - toolchain:add("includedirs", dir) - end - for _, dir in ipairs(table.wrap(path.splitenv(vcvars["LIB"]))) do - toolchain:add("linkdirs", dir) - end - end + end + + if is_host("linux") then toolchain:add("ldflags", "-fuse-ld=lld-link" .. suffix) toolchain:add("shflags", "-fuse-ld=lld-link" .. suffix) end |
