summaryrefslogtreecommitdiff
path: root/xmake/rules/rust/xmake.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2023-03-06 22:55:57 +0800
committerruki <[email protected]>2023-03-06 22:55:57 +0800
commita71fe6d9b138fc9bb16dfb31591f1514f34adf1b (patch)
tree79a1979b2ce827f6c515b0c60edf6dd6d34c1a2a /xmake/rules/rust/xmake.lua
parent8bb23ca24aebe4c2dde25183a4eee7cda76e3438 (diff)
fix sysflags
Diffstat (limited to 'xmake/rules/rust/xmake.lua')
-rw-r--r--xmake/rules/rust/xmake.lua12
1 files changed, 6 insertions, 6 deletions
diff --git a/xmake/rules/rust/xmake.lua b/xmake/rules/rust/xmake.lua
index e31e2f046..2e9295cfd 100644
--- a/xmake/rules/rust/xmake.lua
+++ b/xmake/rules/rust/xmake.lua
@@ -40,22 +40,22 @@ rule("rust.build")
target:data_set("inherit.links.exportlinks", false)
elseif cratetype == "cdylib" then
assert(target:is_shared(), "target(%s) must be shared kind for cratetype(cdylib)!", target:name())
- target:add("shflags", "--crate-type=cdylib")
- target:add("shflags", "-C prefer-dynamic")
+ target:add("shflags", "--crate-type=cdylib", {force = true})
+ target:add("shflags", "-C prefer-dynamic", {force = true})
elseif target:is_static() then
target:set("extension", ".rlib")
- target:add("arflags", "--crate-type=lib")
+ target:add("arflags", "--crate-type=lib", {force = true})
target:data_set("inherit.links.deplink", false)
elseif target:is_shared() then
- target:add("shflags", "--crate-type=dylib")
+ target:add("shflags", "--crate-type=dylib", {force = true})
-- fix cannot satisfy dependencies so `std` only shows up once
-- https://github.com/rust-lang/rust/issues/19680
--
-- but it will link dynamic @rpath/libstd-xxx.dylib,
-- so we can no longer modify and set other rpath paths
- target:add("shflags", "-C prefer-dynamic")
+ target:add("shflags", "-C prefer-dynamic", {force = true})
elseif target:is_binary() then
- target:add("ldflags", "--crate-type=bin")
+ target:add("ldflags", "--crate-type=bin", {force = true})
end
-- set edition