summaryrefslogtreecommitdiff
path: root/xmake/plugins/pack
diff options
context:
space:
mode:
authorruki <[email protected]>2023-11-15 00:27:53 +0800
committerruki <[email protected]>2023-11-15 00:27:53 +0800
commite135ac71db57d25e9d41c3f6eec032e05583bdfb (patch)
treebaef54a96bf1eeedd76a3f07d06b9ad95c6867ad /xmake/plugins/pack
parentcb1a1e3a75dde0ecf6e24fc64d130ab0b193c7a7 (diff)
install static/shared binaries
Diffstat (limited to 'xmake/plugins/pack')
-rw-r--r--xmake/plugins/pack/nsis/main.lua90
1 files changed, 78 insertions, 12 deletions
diff --git a/xmake/plugins/pack/nsis/main.lua b/xmake/plugins/pack/nsis/main.lua
index d8cbefdaa..6becce7dc 100644
--- a/xmake/plugins/pack/nsis/main.lua
+++ b/xmake/plugins/pack/nsis/main.lua
@@ -109,30 +109,96 @@ function _get_commands_string(package, cmds)
return table.concat(cmdstrs, "\n ")
end
--- on install command of target
-function _on_installcmd_of_target(target, batchcmds_, opt)
+-- on install binary target command
+function _on_target_installcmd_binary(target, batchcmds_, opt)
local package = opt.package
local bindir = package:bindir()
-- install target file
batchcmds_:cp(target:targetfile(), path.join(bindir, target:filename()))
+end
+
+-- on install shared target command
+function _on_target_installcmd_shared(target, batchcmds_, opt)
+ local package = opt.package
+ local bindir = package:bindir()
+
+ -- install target file
+ batchcmds_:cp(target:targetfile(), path.join(bindir, target:filename()))
+end
+
+-- on install static target command
+function _on_target_installcmd_static(target, batchcmds_, opt)
+ local package = opt.package
+ local bindir = package:bindir()
+
+ -- install target file
+ batchcmds_:cp(target:targetfile(), path.join(bindir, target:filename()))
+end
+
+-- on install target command
+function _on_target_installcmd(target, batchcmds_, opt)
+
+ -- install target binaries
+ local scripts = {
+ binary = _on_target_installcmd_binary
+ shared = _on_target_installcmd_shared
+ static = _on_target_installcmd_static
+ }
+ local script = scripts[target:kind()]
+ if script then
+ script(target, batchcmds_, opt)
+ end
- -- install files
+ -- install target files
local srcfiles, dstfiles = target:installfiles(".")
for idx, srcfile in ipairs(srcfiles) do
batchcmds_:cp(srcfile, dstfiles[idx])
end
end
--- on uninstall command of target
-function _on_uninstallcmd_of_target(target, batchcmds_, opt)
+-- on uninstall binary target command
+function _on_target_uninstallcmd_binary(target, batchcmds_, opt)
local package = opt.package
local bindir = package:bindir()
-- uninstall target file
batchcmds_:rm(path.join(bindir, target:filename()))
+end
+
+-- on uninstall shared target command
+function _on_target_uninstallcmd_shared(target, batchcmds_, opt)
+ local package = opt.package
+ local bindir = package:bindir()
+
+ -- uninstall target file
+ batchcmds_:rm(path.join(bindir, target:filename()))
+end
+
+-- on uninstall static target command
+function _on_target_uninstallcmd_static(target, batchcmds_, opt)
+ local package = opt.package
+ local bindir = package:bindir()
+
+ -- uninstall target file
+ batchcmds_:rm(path.join(bindir, target:filename()))
+end
+
+-- on uninstall target command
+function _on_target_uninstallcmd(target, batchcmds_, opt)
+
+ -- uninstall target binaries
+ local scripts = {
+ binary = _on_target_uninstallcmd_binary
+ shared = _on_target_uninstallcmd_shared
+ static = _on_target_uninstallcmd_static
+ }
+ local script = scripts[target:kind()]
+ if script then
+ script(target, batchcmds_, opt)
+ end
- -- uninstall files
+ -- uninstall target files
local _, dstfiles = target:installfiles(".")
for _, dstfile in ipairs(dstfiles) do
batchcmds_:rm(dstfile)
@@ -140,7 +206,7 @@ function _on_uninstallcmd_of_target(target, batchcmds_, opt)
end
-- get install commands from targets
-function _get_installcmds_from_target(target, batchcmds_, opt)
+function _get_target_installcmds(target, batchcmds_, opt)
-- call script to get install commands
local scripts = {
@@ -153,7 +219,7 @@ function _get_installcmds_from_target(target, batchcmds_, opt)
end
end
end,
- target:script("installcmd", _on_installcmd_of_target),
+ target:script("installcmd", _on_target_installcmd),
function (target)
for _, r in ipairs(target:orderules()) do
local after_installcmd = r:script("installcmd_after")
@@ -173,7 +239,7 @@ function _get_installcmds_from_target(target, batchcmds_, opt)
end
-- get uninstall commands from targets
-function _get_uninstallcmds_from_target(target, batchcmds_, opt)
+function _get_target_uninstallcmds(target, batchcmds_, opt)
-- call script to get uninstall commands
local scripts = {
@@ -186,7 +252,7 @@ function _get_uninstallcmds_from_target(target, batchcmds_, opt)
end
end
end,
- target:script("uninstallcmd", _on_uninstallcmd_of_target),
+ target:script("uninstallcmd", _on_target_uninstallcmd),
function (target)
for _, r in ipairs(target:orderules()) do
local after_uninstallcmd = r:script("uninstallcmd_after")
@@ -212,7 +278,7 @@ function _on_installcmd(package, batchcmds_)
batchcmds_:cp(srcfile, dstfiles[idx])
end
for _, target in ipairs(package:targets()) do
- _get_installcmds_from_target(target, batchcmds_, {package = package})
+ _get_target_installcmds(target, batchcmds_, {package = package})
end
end
@@ -223,7 +289,7 @@ function _on_uninstallcmd(package, batchcmds_)
batchcmds_:rm(dstfile)
end
for _, target in ipairs(package:targets()) do
- _get_uninstallcmds_from_target(target, batchcmds_, {package = package})
+ _get_target_uninstallcmds(target, batchcmds_, {package = package})
end
end