diff options
| author | ruki <[email protected]> | 2019-09-08 12:23:12 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-09-08 12:23:12 +0800 |
| commit | 311693f056cc268de9b811963a5677c7166a0a35 (patch) | |
| tree | 14445a8a34832009da21cee0debef9dc0c0be5f2 | |
| parent | 938d89e1ab1b7b56335a128b94df0a34d594a0f1 (diff) | |
improve link progress
| -rw-r--r-- | xmake/actions/build/kinds/binary.lua | 15 | ||||
| -rw-r--r-- | xmake/actions/build/kinds/shared.lua | 15 | ||||
| -rw-r--r-- | xmake/actions/build/kinds/static.lua | 15 | ||||
| -rw-r--r-- | xmake/rules/cuda/devlink/xmake.lua | 2 |
4 files changed, 46 insertions, 1 deletions
diff --git a/xmake/actions/build/kinds/binary.lua b/xmake/actions/build/kinds/binary.lua index 0d242108b..976422e40 100644 --- a/xmake/actions/build/kinds/binary.lua +++ b/xmake/actions/build/kinds/binary.lua @@ -117,7 +117,13 @@ end -- link target function _link_target(target, opt) + -- get progress + local progress = opt.progress + local progress_before = {start = progress.start, stop = progress.start} + local progress_after = {start = progress.stop, stop = progress.stop} + -- do before link for target + opt.progress = progress_before local before_link = target:script("link_before") if before_link then before_link(target, opt) @@ -132,9 +138,11 @@ function _link_target(target, opt) end -- on link + opt.progress = progress target:script("link", _on_link_target)(target, table.join(opt, {origin = _do_link_target})) -- do after link for target + opt.progress = progress_after local after_link = target:script("link_after") if after_link then after_link(target, opt) @@ -152,9 +160,16 @@ end -- build binary target function build(target, opt) + -- separate progress + local progress = opt.progress + local progress_mid = math.max(progress.start, progress.stop - 1) + -- build objects + opt = table.copy(opt) + opt.progress = {start = progress.start, stop = progress_mid} object.build(target, opt) -- link target + opt.progress = {start = progress_mid, stop = progress.stop} _link_target(target, opt) end diff --git a/xmake/actions/build/kinds/shared.lua b/xmake/actions/build/kinds/shared.lua index f6a8d6161..2c2b163db 100644 --- a/xmake/actions/build/kinds/shared.lua +++ b/xmake/actions/build/kinds/shared.lua @@ -130,7 +130,13 @@ end -- link target function _link_target(target, opt) + -- get progress + local progress = opt.progress + local progress_before = {start = progress.start, stop = progress.start} + local progress_after = {start = progress.stop, stop = progress.stop} + -- do before link for target + opt.progress = progress_before local before_link = target:script("link_before") if before_link then before_link(target, opt) @@ -145,9 +151,11 @@ function _link_target(target, opt) end -- on link + opt.progress = progress target:script("link", _on_link_target)(target, table.join(opt, {origin = _do_link_target})) -- do after link for target + opt.progress = progress_after local after_link = target:script("link_after") if after_link then after_link(target, opt) @@ -165,9 +173,16 @@ end -- build shared target function build(target, opt) + -- separate progress + local progress = opt.progress + local progress_mid = math.max(progress.start, progress.stop - 1) + -- build objects + opt = table.copy(opt) + opt.progress = {start = progress.start, stop = progress_mid} object.build(target, opt) -- link target + opt.progress = {start = progress_mid, stop = progress.stop} _link_target(target, opt) end diff --git a/xmake/actions/build/kinds/static.lua b/xmake/actions/build/kinds/static.lua index c9a6987dd..b81925113 100644 --- a/xmake/actions/build/kinds/static.lua +++ b/xmake/actions/build/kinds/static.lua @@ -126,7 +126,13 @@ end -- link target function _link_target(target, opt) + -- get progress + local progress = opt.progress + local progress_before = {start = progress.start, stop = progress.start} + local progress_after = {start = progress.stop, stop = progress.stop} + -- do before link for target + opt.progress = progress_before local before_link = target:script("link_before") if before_link then before_link(target, opt) @@ -141,9 +147,11 @@ function _link_target(target, opt) end -- on link + opt.progress = progress target:script("link", _on_link_target)(target, table.join(opt, {origin = _do_link_target})) -- do after link for target + opt.progress = progress_after local after_link = target:script("link_after") if after_link then after_link(target, opt) @@ -161,9 +169,16 @@ end -- build static target function build(target, opt) + -- separate progress + local progress = opt.progress + local progress_mid = math.max(progress.start, progress.stop - 1) + -- build objects + opt = table.copy(opt) + opt.progress = {start = progress.start, stop = progress_mid} object.build(target, opt) -- link target + opt.progress = {start = progress_mid, stop = progress.stop} _link_target(target, opt) end diff --git a/xmake/rules/cuda/devlink/xmake.lua b/xmake/rules/cuda/devlink/xmake.lua index 7b28b9046..18692c33d 100644 --- a/xmake/rules/cuda/devlink/xmake.lua +++ b/xmake/rules/cuda/devlink/xmake.lua @@ -92,7 +92,7 @@ rule("cuda.build.devlink") local verbose = option.get("verbose") -- trace progress info - cprintf("${color.build.progress}" .. theme.get("text.build.progress_format") .. ":${clear} ", opt.progress.stop) + cprintf("${color.build.progress}" .. theme.get("text.build.progress_format") .. ":${clear} ", opt.progress.start) if verbose then cprint("${dim color.build.target}devlinking.$(mode) %s", path.filename(targetfile)) else |
