summaryrefslogtreecommitdiff
path: root/xmake/plugins/pack
diff options
context:
space:
mode:
authorruki <[email protected]>2023-12-21 23:04:56 +0800
committerruki <[email protected]>2023-12-21 23:04:56 +0800
commit4296189fb104b1632c939b6bdef5cf86f610fd40 (patch)
tree78ce07417d9412fef8abd43bdd1e375da34c9d84 /xmake/plugins/pack
parent1976625c2296c156511922d6792df6f2da8a1b23 (diff)
add build requires
Diffstat (limited to 'xmake/plugins/pack')
-rw-r--r--xmake/plugins/pack/srpm/main.lua23
1 files changed, 23 insertions, 0 deletions
diff --git a/xmake/plugins/pack/srpm/main.lua b/xmake/plugins/pack/srpm/main.lua
index a65f3b4f6..949b99516 100644
--- a/xmake/plugins/pack/srpm/main.lua
+++ b/xmake/plugins/pack/srpm/main.lua
@@ -21,6 +21,7 @@
-- imports
import("core.base.option")
import("core.base.semver")
+import("core.base.hashset")
import("lib.detect.find_tool")
import("utils.archive")
import("private.action.require.impl.packagenv")
@@ -144,6 +145,28 @@ function _get_specvars(package)
_get_buildcmds(package, buildcmds, batchcmds.get_buildcmds(package):cmds())
return table.concat(buildcmds, "\n")
end
+ specvars.PACKAGE_BUILDREQUIRES = function ()
+ local requires = {}
+ local programs = hashset.new()
+ for _, cmd in ipairs(batchcmds.get_buildcmds(package):cmds()) do
+ local program = cmd.program
+ if program then
+ programs:insert(program)
+ end
+ end
+ local map = {
+ xmake = "xmake",
+ cmake = "cmake",
+ make = "make"
+ }
+ for _, program in programs:keys() do
+ local requirename = map[program]
+ if requirename then
+ table.insert(requires, "BuildRequires: " .. requirename)
+ end
+ end
+ return table.concat(requires, "\n")
+ end
return specvars
end