summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-03-12 00:06:24 +0800
committerruki <[email protected]>2023-03-12 00:06:24 +0800
commit87c613045e24040839a98b556a56d53fc2108d38 (patch)
treec0d912c49ee63fac64eee2cbeb9eb0c355837260
parent4984193f1dc0c45a4214e5456bb9ee508d8e49e0 (diff)
improve ninja generator for msvc
-rw-r--r--xmake/plugins/project/ninja/build_ninja.lua9
1 files changed, 8 insertions, 1 deletions
diff --git a/xmake/plugins/project/ninja/build_ninja.lua b/xmake/plugins/project/ninja/build_ninja.lua
index cb757d484..4d1762d0a 100644
--- a/xmake/plugins/project/ninja/build_ninja.lua
+++ b/xmake/plugins/project/ninja/build_ninja.lua
@@ -227,8 +227,15 @@ end
-- add rules for linker (msvc)
function _add_rules_for_linker_msvc(ninjafile, linkerkind, program)
+ if linkerkind == "ar" then
+ program = program .. " -lib"
+ elseif linkerkind == "sh" then
+ program = program .. " -dll"
+ end
ninjafile:print("rule %s", linkerkind)
- ninjafile:print(" command = %s $ARGS -out:$out $in", program)
+ ninjafile:print(" command = %s @$out.rsp", program)
+ ninjafile:print(" rspfile = $out.rsp")
+ ninjafile:print(" rspfile_content = $ARGS -out:$out $in_newline")
ninjafile:print(" description = linking.%s $out", config.mode())
ninjafile:print("")
end