summaryrefslogtreecommitdiff
path: root/xmake/core/base/task.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2025-01-07 00:59:53 +0800
committerruki <[email protected]>2025-01-07 00:59:53 +0800
commitbdc9a4cb46d5dd7d46dfa9a0ab2ec29aa9a2e6a8 (patch)
treec384c9db27b4b77a9e9fe5f6fd772da60ca90adf /xmake/core/base/task.lua
parente66776b2980aec6bf3379814aae68882dcfb516e (diff)
add namespace for task
Diffstat (limited to 'xmake/core/base/task.lua')
-rw-r--r--xmake/core/base/task.lua20
1 files changed, 18 insertions, 2 deletions
diff --git a/xmake/core/base/task.lua b/xmake/core/base/task.lua
index deea228aa..1b1093e68 100644
--- a/xmake/core/base/task.lua
+++ b/xmake/core/base/task.lua
@@ -373,7 +373,12 @@ end
-- new a task instance
function task.new(name, info)
local instance = table.inherit(task)
- instance._NAME = name
+ local parts = name:split("::", {plain = true})
+ instance._NAME = parts[#parts]
+ table.remove(parts)
+ if #parts > 0 then
+ instance._NAMESPACE = table.concat(parts, "::")
+ end
instance._INFO = info
return instance
end
@@ -475,13 +480,24 @@ function task:name()
return self._NAME
end
+-- get the namespace
+function _instance:namespace()
+ return self._NAMESPACE
+end
+
+-- get the full name
+function _instance:fullname()
+ local namespace = self:namespace()
+ return namespace and namespace .. "::" .. self:name() or self:name()
+end
+
-- run given task
function task:run(...)
-- check
local on_run = self:get("run")
if not on_run then
- return false, string.format("task(\"%s\"): no run script, please call on_run() first!", self:name())
+ return false, string.format("task(\"%s\"): no run script, please call on_run() first!", self:fullname())
end
-- save the current directory