summaryrefslogtreecommitdiff
path: root/xmake/modules/package/tools/ninja.lua
diff options
context:
space:
mode:
authorstar9029 <[email protected]>2024-08-29 16:50:29 +0800
committerstar9029 <[email protected]>2024-08-29 16:50:29 +0800
commit94829508d57ac49bcd0cecc3a6de6f5afcdf921c (patch)
treee8805e499a0b4117627324c7d319f5454b49bd71 /xmake/modules/package/tools/ninja.lua
parent87630c8cf33105cc8c000e73cb7b67a2decfe02d (diff)
Support multiple targets for package
Diffstat (limited to 'xmake/modules/package/tools/ninja.lua')
-rw-r--r--xmake/modules/package/tools/ninja.lua40
1 files changed, 18 insertions, 22 deletions
diff --git a/xmake/modules/package/tools/ninja.lua b/xmake/modules/package/tools/ninja.lua
index 42dc73ed6..f900a8d1f 100644
--- a/xmake/modules/package/tools/ninja.lua
+++ b/xmake/modules/package/tools/ninja.lua
@@ -22,19 +22,19 @@
import("core.base.option")
import("lib.detect.find_tool")
--- build package
-function build(package, configs, opt)
+function _default_argv(package, configs, opt)
opt = opt or {}
local buildir = opt.buildir or os.curdir()
local njob = opt.jobs or option.get("jobs") or tostring(os.default_njob())
- local ninja = assert(find_tool("ninja"), "ninja not found!")
+
local argv = {}
- if opt.target then
- table.insert(argv, opt.target)
+ local target = table.wrap(opt.target)
+ if #target ~= 0 then
+ table.join2(argv, target)
end
table.insert(argv, "-C")
table.insert(argv, buildir)
- if option.get("diagnosis") then
+ if option.get("verbose") then
table.insert(argv, "-v")
end
table.insert(argv, "-j")
@@ -42,28 +42,24 @@ function build(package, configs, opt)
if configs then
table.join2(argv, configs)
end
+
+ return argv
+end
+
+-- build package
+function build(package, configs, opt)
+ opt = opt or {}
+ local argv = {}
+ local ninja = assert(find_tool("ninja"), "ninja not found!")
+ table.join2(argv, _default_argv(package, configs, opt))
os.vrunv(ninja.program, argv, {envs = opt.envs})
end
-- install package
function install(package, configs, opt)
opt = opt or {}
- local buildir = opt.buildir or os.curdir()
- local njob = opt.jobs or option.get("jobs") or tostring(os.default_njob())
- local ninja = assert(find_tool("ninja"), "ninja not found!")
local argv = {"install"}
- if opt.target then
- table.insert(argv, opt.target)
- end
- table.insert(argv, "-C")
- table.insert(argv, buildir)
- if option.get("verbose") then
- table.insert(argv, "-v")
- end
- table.insert(argv, "-j")
- table.insert(argv, njob)
- if configs then
- table.join2(argv, configs)
- end
+ local ninja = assert(find_tool("ninja"), "ninja not found!")
+ table.join2(argv, _default_argv(package, configs, opt))
os.vrunv(ninja.program, argv, {envs = opt.envs})
end