diff options
| author | ruki <[email protected]> | 2020-12-02 00:54:31 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-12-02 00:54:31 +0800 |
| commit | b0384dc3b81f05d4028f9e06dbb6caaa46f42013 (patch) | |
| tree | 4cbf771e45362e726dabcd2bf9bdb326081a9d76 /xmake/modules/package/tools/meson.lua | |
| parent | 7d1894ff02004c542f44794af00d537bd756c07a (diff) | |
add tools/gn and ninja
Diffstat (limited to 'xmake/modules/package/tools/meson.lua')
| -rw-r--r-- | xmake/modules/package/tools/meson.lua | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/xmake/modules/package/tools/meson.lua b/xmake/modules/package/tools/meson.lua index fc4a2a1ae..c0bb5fe78 100644 --- a/xmake/modules/package/tools/meson.lua +++ b/xmake/modules/package/tools/meson.lua @@ -21,11 +21,16 @@ -- imports import("core.base.option") import("core.project.config") +import("package.tools.ninja") -- get build directory -function _get_buildir() - _g.buildir = _g.buildir or ("build_" .. hash.uuid4():split('%-')[1]) - return _g.buildir +function _get_buildir(opt) + if opt and opt.buildir then + return opt.buildir + else + _g.buildir = _g.buildir or ("build_" .. hash.uuid4():split('%-')[1]) + return _g.buildir + end end -- get configs @@ -110,19 +115,26 @@ function generate(package, configs, opt) os.vrunv("meson", argv, {envs = opt.envs or buildenvs(package)}) end +-- build package +function build(package, configs, opt) + + -- generate build files + opt = opt or {} + generate(package, configs, opt) + + -- do build + local buildir = _get_buildir(opt) + ninja.build(package, {}, {buildir = buildir, envs = opt.envs or buildenvs(package, opt)}) +end + -- install package function install(package, configs, opt) -- generate build files + opt = opt or {} generate(package, configs, opt) -- do build and install - local buildir = _get_buildir() - if option.get("verbose") or option.get("diagnosis") then - os.vrunv("ninja", {"-v", "-C", buildir}) - os.vrunv("ninja", {"install", "-v", "-C", buildir}) - else - os.vrunv("ninja", {"-C", buildir}) - os.vrunv("ninja", {"install", "-C", buildir}) - end + local buildir = _get_buildir(opt) + ninja.install(package, {}, {buildir = buildir, envs = opt.envs or buildenvs(package, opt)}) end |
