summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHuiYuanXin13 <[email protected]>2025-08-20 21:42:29 +0800
committerGitHub <[email protected]>2025-08-20 21:42:29 +0800
commit2b387d2a1c8b92e586527d2f7cee98cd316827b7 (patch)
tree88632d6616919c67760892508f5b3dcc68dbebc6
parentd92f86baceb1092b78446ef65d3cb55483ea1540 (diff)
fix: android ndk rust link-args
修复了这样的问题:使用android ndk构建rust源码时,rustc不会将link-args="..."的等号之后的引号特殊处理,导致传递给clang++类似'"-llog'的错误的参数。
-rw-r--r--xmake/toolchains/ndk/load.lua6
1 files changed, 4 insertions, 2 deletions
diff --git a/xmake/toolchains/ndk/load.lua b/xmake/toolchains/ndk/load.lua
index 22b7aa658..faa22c5a0 100644
--- a/xmake/toolchains/ndk/load.lua
+++ b/xmake/toolchains/ndk/load.lua
@@ -377,8 +377,10 @@ function main(toolchain)
table.insert(rcshflags, "-l" .. link)
table.insert(rcldflags, "-l" .. link)
end
- toolchain:add("rcshflags", "-C link-args=\"" .. (table.concat(rcshflags, " "):gsub("%-march=.-%s", "") .. "\""))
- toolchain:add("rcldflags", "-C link-args=\"" .. (table.concat(rcldflags, " "):gsub("%-march=.-%s", "") .. "\""))
+ -- fix [[note: clang++: error: no such file or directory: '"-llog']] on windows
+ -- @note 'link-args=...' should not be 'link-args="..."'
+ toolchain:set("rcshflags", {"-C", "link-args=" .. (table.concat(rcshflags, " "):gsub("%-march=.-%s", ""))}, {expand=false})
+ toolchain:set("rcldflags", {"-C", "link-args=" .. (table.concat(rcldflags, " "):gsub("%-march=.-%s", ""))}, {expand=false})
local sh = toolchain:tool("sh") -- @note we cannot use `config.get("sh")`, because we need to check sh first
if sh then
toolchain:add("rcshflags", "-C linker=" .. sh)