summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-02-22 23:32:58 +0800
committerruki <[email protected]>2020-02-22 23:32:58 +0800
commita09ed2f4b6897b6627a40250993a4d0be4966fb4 (patch)
tree5904e3877c2795d875cf4f269947e453f99d9f36
parentd7343aea8fdfdba0c71bcdb3441057aefeb64a97 (diff)
add linker rules for ninja
-rw-r--r--xmake/plugins/project/ninja/build_ninja.lua13
1 files changed, 11 insertions, 2 deletions
diff --git a/xmake/plugins/project/ninja/build_ninja.lua b/xmake/plugins/project/ninja/build_ninja.lua
index a1be1c69a..5f0eb76d8 100644
--- a/xmake/plugins/project/ninja/build_ninja.lua
+++ b/xmake/plugins/project/ninja/build_ninja.lua
@@ -41,7 +41,7 @@ end
function _add_rules_for_compiler_gcc(ninjafile, sourcekind, program)
local ccache = find_tool("ccache")
ninjafile:print("rule %s", sourcekind)
- ninjafile:print(" command = %s%s $ARGS -MDD -MF '$DEPFILE' -o $out -c $in", ccache and (ccache.program .. " ") or "", program)
+ ninjafile:print(" command = %s%s $ARGS -MMD -MF '$DEPFILE' -o $out -c $in", ccache and (ccache.program .. " ") or "", program)
ninjafile:print(" depfile = $DEPFILE")
ninjafile:print(" description = %scompiling.%s $in", ccache and "ccache " or "", config.mode())
ninjafile:print("")
@@ -72,11 +72,19 @@ function _add_rules_for_compiler(ninjafile)
ninjafile:print("")
end
+-- add rules for linker (ar)
+function _add_rules_for_linker_ar(ninjafile, linkerkind, program)
+ ninjafile:print("rule %s", linkerkind)
+ ninjafile:print(" command = %s -cr $ARGS $out $in", program)
+ ninjafile:print(" description = archiving.%s $out", config.mode())
+ ninjafile:print("")
+end
+
-- add rules for linker (gcc)
function _add_rules_for_linker_gcc(ninjafile, linkerkind, program)
ninjafile:print("rule %s", linkerkind)
ninjafile:print(" command = %s -o $out $in $ARGS", program)
- ninjafile:print(" description = linking.%s $in", config.mode())
+ ninjafile:print(" description = linking.%s $out", config.mode())
ninjafile:print("")
end
@@ -94,6 +102,7 @@ function _add_rules_for_linker(ninjafile)
end
local add_linker_rules =
{
+ ar = _add_rules_for_linker_ar,
gcc = _add_rules_for_linker_gcc,
gxx = _add_rules_for_linker_gcc,
clang = _add_rules_for_linker_clang,