diff options
| author | ruki <[email protected]> | 2025-01-07 00:59:53 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2025-01-07 00:59:53 +0800 |
| commit | bdc9a4cb46d5dd7d46dfa9a0ab2ec29aa9a2e6a8 (patch) | |
| tree | c384c9db27b4b77a9e9fe5f6fd772da60ca90adf /xmake/core/base/task.lua | |
| parent | e66776b2980aec6bf3379814aae68882dcfb516e (diff) | |
add namespace for task
Diffstat (limited to 'xmake/core/base/task.lua')
| -rw-r--r-- | xmake/core/base/task.lua | 20 |
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 |
