diff options
| -rw-r--r-- | xmake/core/base/interpreter.lua | 4 | ||||
| -rw-r--r-- | xmake/core/base/option.lua | 8 | ||||
| -rw-r--r-- | xmake/core/project/project.lua | 4 |
3 files changed, 8 insertions, 8 deletions
diff --git a/xmake/core/base/interpreter.lua b/xmake/core/base/interpreter.lua index ea5dfcd96..60e6f9cc7 100644 --- a/xmake/core/base/interpreter.lua +++ b/xmake/core/base/interpreter.lua @@ -497,7 +497,7 @@ function interpreter:_make(scope_kind, remove_repeat, enable_filter) -- empty scope? if not scopes or not scopes._ROOT then - return nil, string.format("the scope %s() is empty!", scope_kind) + os.raise("the scope %s() is empty!", scope_kind) end -- make results @@ -682,7 +682,7 @@ function interpreter:load(file, scope_kind, remove_repeat, enable_filter) -- bind public scope setfenv(script, self._PUBLIC) - -- done interpreter + -- do interpreter local ok, errors = xpcall(script, interpreter._traceback) if not ok then return nil, errors diff --git a/xmake/core/base/option.lua b/xmake/core/base/option.lua index a6a87ad7c..520a5f516 100644 --- a/xmake/core/base/option.lua +++ b/xmake/core/base/option.lua @@ -41,13 +41,13 @@ function option._translate(menu) local submenus_all = {} for k, submenu in pairs(menu) do if type(submenu) == "function" then - local _submenus, errors = submenu() - if _submenus then - for k, m in pairs(_submenus) do + local ok, _submenus_or_errors = pcall(submenu) + if ok and _submenus_or_errors then + for k, m in pairs(_submenus_or_errors) do submenus_all[k] = m end else - return false, errors + return false, (_submenus_or_errors or "translate option menu failed!") end else submenus_all[k] = submenu diff --git a/xmake/core/project/project.lua b/xmake/core/project/project.lua index e5785a645..ff7108411 100644 --- a/xmake/core/project/project.lua +++ b/xmake/core/project/project.lua @@ -362,7 +362,7 @@ function project._load_scope(scope_kind, remove_repeat, enable_filter) -- load targets local results, errors = interp:load(project.file(), scope_kind, remove_repeat, enable_filter) if not results then - return nil, errors + return nil, (errors or "load project file failed!") end -- leave the project directory @@ -664,7 +664,7 @@ function project.tasks() -- load the tasks from the the project file local results, errors = project._load_scope("task", true, true) if not results then - os.raise(errors) + os.raise(errors or "load project tasks failed!") end -- bind tasks for menu with an sandbox instance |
