summaryrefslogtreecommitdiff
path: root/xmake/core/base/option.lua
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/core/base/option.lua')
-rw-r--r--xmake/core/base/option.lua8
1 files changed, 4 insertions, 4 deletions
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