summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstar9029 <[email protected]>2024-11-18 21:02:17 +0800
committerstar9029 <[email protected]>2024-11-18 21:02:17 +0800
commite06529223a2385e5bd56a9db2b95ed2262da1ae1 (patch)
treecdd22ceb46ee364511a259c85a6aea1e524a2dc5
parent38581f8517c86a814a432b3c2bf2517c11910dec (diff)
improve include/lib for clang
-rw-r--r--xmake/toolchains/clang/load.lua37
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