summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-09-07 23:46:11 +0800
committerruki <[email protected]>2024-09-07 23:46:11 +0800
commitcd43ea6e22998194201a548fbb969808e354dbe1 (patch)
treea1e549b9fcbf45debc1dbd6f786f9a4416e54d67
parentdeb72f080db825bc30262476279238874f0d9cea (diff)
xrepo_addenv
-rw-r--r--xmake/includes/xrepo/xmake.lua42
1 files changed, 33 insertions, 9 deletions
diff --git a/xmake/includes/xrepo/xmake.lua b/xmake/includes/xrepo/xmake.lua
index 596a3b1ca..8891e4f0b 100644
--- a/xmake/includes/xrepo/xmake.lua
+++ b/xmake/includes/xrepo/xmake.lua
@@ -22,17 +22,18 @@
-- @see https://github.com/xmake-io/xmake/issues/5580
--
-- @code
- includes("@builtin/xrepo")
-
- xrepo_addenvs(function (package)
- package:addenv("FOO", "FOO")
- end)
-
- xrepo_addenvs({BAR = "BAR"})
+-- includes("@builtin/xrepo")
+--
+-- xrepo_addenvs(function (package)
+-- package:addenv("FOO", "FOO")
+-- end)
+--
+-- xrepo_addenvs({BAR = "BAR"})
-- @endcode
--
function xrepo_addenvs(envs)
- package("__xrepo_addenvs_" .. (tostring(envs):gsub("%s", "_")))
+ local packagename = "__xrepo_addenvs_" .. (tostring(envs):gsub("%s", "_"))
+ package(packagename)
on_load(function (package)
if type(envs) == "function" then
envs(package)
@@ -46,5 +47,28 @@ function xrepo_addenvs(envs)
return {}
end)
package_end()
- add_requires("__xrepo_addenvs_" .. (tostring(envs):gsub("%s", "_")))
+ add_requires(packagename)
+end
+
+-- add env for `xrepo env`
+-- @see https://github.com/xmake-io/xmake/issues/5580
+--
+-- @code
+-- includes("@builtin/xrepo")
+--
+-- xrepo_addenv("ZOO", ...)
+-- @endcode
+--
+function xrepo_addenv(name, ...)
+ local args = table.pack(...)
+ local packagename = "xrepo_addenv_" .. name .. (table.concat(args):gsub("%s", "_"))
+ package(packagename)
+ on_load(function (package)
+ package:addenv(name, table.unpack(args))
+ end)
+ on_fetch(function (package, opt)
+ return {}
+ end)
+ package_end()
+ add_requires(packagename)
end