summaryrefslogtreecommitdiff
path: root/xmake/core/base
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/core/base')
-rw-r--r--xmake/core/base/interpreter.lua17
-rw-r--r--xmake/core/base/task.lua10
2 files changed, 16 insertions, 11 deletions
diff --git a/xmake/core/base/interpreter.lua b/xmake/core/base/interpreter.lua
index 9c2d35450..d45640064 100644
--- a/xmake/core/base/interpreter.lua
+++ b/xmake/core/base/interpreter.lua
@@ -662,8 +662,8 @@ function interpreter.new()
return instance
end
--- load results
-function interpreter:load(file, scope_kind, remove_repeat, enable_filter)
+-- load script file, e.g. xmake.lua
+function interpreter:load(file)
-- check
assert(self and self._PUBLIC and self._PRIVATE and file)
@@ -691,18 +691,17 @@ function interpreter:load(file, scope_kind, remove_repeat, enable_filter)
setfenv(script, self._PUBLIC)
-- do interpreter
- local ok, errors = xpcall(script, interpreter._traceback)
- if not ok then
- return nil, errors
- end
+ return xpcall(script, interpreter._traceback)
+end
- -- make results
+-- make results
+function interpreter:make(scope_kind, remove_repeat, enable_filter)
+
+ -- get the results with the given scope
local ok, results = xpcall(interpreter._make, interpreter._traceback, self, scope_kind, remove_repeat, enable_filter)
if not ok then
return nil, results
end
-
- -- ok
return results
end
diff --git a/xmake/core/base/task.lua b/xmake/core/base/task.lua
index b2b5b25a0..d42609756 100644
--- a/xmake/core/base/task.lua
+++ b/xmake/core/base/task.lua
@@ -317,9 +317,15 @@ function task._load(filepath)
local interp = task._interpreter()
assert(interp)
+ -- load script
+ local ok, errors = interp:load(filepath)
+ if not ok and os.isfile(filepath) then
+ return nil, errors
+ end
+
-- load tasks
- local tasks, errors = interp:load(filepath, "task", true, true)
- if not tasks and os.isfile(filepath) then
+ local tasks, errors = interp:make("task", true, true)
+ if not tasks then
return nil, errors
end