From 6417898f2e1076a642d85fc91478c84b9e67a39a Mon Sep 17 00:00:00 2001 From: ruki Date: Fri, 22 Dec 2023 00:00:18 +0800 Subject: pack xmake install to srpm --- xmake/plugins/pack/batchcmds.lua | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'xmake/plugins/pack/batchcmds.lua') diff --git a/xmake/plugins/pack/batchcmds.lua b/xmake/plugins/pack/batchcmds.lua index 2403b5bca..9f74ad606 100644 --- a/xmake/plugins/pack/batchcmds.lua +++ b/xmake/plugins/pack/batchcmds.lua @@ -183,6 +183,12 @@ function _on_target_installcmd_headeronly(target, batchcmds_, opt) _install_headers(target, batchcmds_, includedir) end +-- on install source target command +function _on_target_installcmd_source(target, batchcmds_, opt) + local package = opt.package + batchcmds_:vrunv("xmake", {"install", "-o", path(package:install_rootdir()), target:name()}) +end + -- on build target command function _on_target_buildcmd(target, batchcmds_, opt) local package = opt.package @@ -192,6 +198,10 @@ end -- on install target command function _on_target_installcmd(target, batchcmds_, opt) local package = opt.package + if package:from_source() then + _on_target_installcmd_source(target, batchcmds_, opt) + return + end -- install target binaries local scripts = { @@ -278,9 +288,18 @@ function _on_target_uninstallcmd_headeronly(target, batchcmds_, opt) _uninstall_headers(target, batchcmds_, includedir) end +-- on uninstall source target command +function _on_target_uninstallcmd_source(target, batchcmds_, opt) + -- TODO +end + -- on uninstall target command function _on_target_uninstallcmd(target, batchcmds_, opt) local package = opt.package + if package:from_source() then + _on_target_uninstallcmd_source(target, batchcmds_, opt) + return + end -- uninstall target binaries local scripts = { @@ -412,9 +431,6 @@ end -- on install command function _on_installcmd(package, batchcmds_) - if not package:from_binary() then - return - end local srcfiles, dstfiles = package:installfiles() for idx, srcfile in ipairs(srcfiles) do batchcmds_:cp(srcfile, dstfiles[idx]) @@ -426,9 +442,6 @@ end -- on uninstall command function _on_uninstallcmd(package, batchcmds_) - if not package:from_binary() then - return - end local _, dstfiles = package:installfiles() for _, dstfile in ipairs(dstfiles) do batchcmds_:rm(dstfile, {emptydirs = true}) -- cgit v1.3.1 From e7e4a16ed6bb8e2f1db5fc28d5ad2920e3c8e41b Mon Sep 17 00:00:00 2001 From: ruki Date: Fri, 22 Dec 2023 00:56:55 +0800 Subject: translate path --- xmake/plugins/pack/batchcmds.lua | 2 +- xmake/plugins/pack/srpm/main.lua | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'xmake/plugins/pack/batchcmds.lua') diff --git a/xmake/plugins/pack/batchcmds.lua b/xmake/plugins/pack/batchcmds.lua index 9f74ad606..3d9229cce 100644 --- a/xmake/plugins/pack/batchcmds.lua +++ b/xmake/plugins/pack/batchcmds.lua @@ -192,7 +192,7 @@ end -- on build target command function _on_target_buildcmd(target, batchcmds_, opt) local package = opt.package - batchcmds_:vrunv("xmake", {"build", target:name()}) + batchcmds_:vrunv("xmake", {"build", "-y", target:name()}) end -- on install target command diff --git a/xmake/plugins/pack/srpm/main.lua b/xmake/plugins/pack/srpm/main.lua index 1ffbdc6ed..1f6a52b57 100644 --- a/xmake/plugins/pack/srpm/main.lua +++ b/xmake/plugins/pack/srpm/main.lua @@ -99,8 +99,16 @@ function _get_customcmd(package, installcmds, cmd) local dir = _translate_filepath(package, cmd.dir) table.insert(installcmds, string.format("mkdir -p \"%s\"", dir)) elseif cmd.program then - -- TODO translate path - table.insert(installcmds, string.format("%s", os.args(table.join(cmd.program, cmd.argv)))) + local argv = {} + for _, arg in ipairs(cmd.argv) do + if path.instance_of(arg) then + arg = arg:clone():set(_translate_filepath(package, arg:rawstr())):str() + elseif path.is_absolute(arg) then + arg = _translate_filepath(package, arg) + end + table.insert(argv, arg) + end + table.insert(installcmds, string.format("%s", os.args(table.join(cmd.program, argv)))) end end -- cgit v1.3.1