summaryrefslogtreecommitdiff
path: root/xmake
diff options
context:
space:
mode:
authorruki <[email protected]>2019-02-11 22:35:12 +0800
committerruki <[email protected]>2019-02-11 09:31:14 +0800
commit25bd4311c541cbf6329b8a309d8d47ceeaee5184 (patch)
tree6bb22bd3f2481f1693eb2c48e248269063c51eb0 /xmake
parentb4763becbdab9433f46b96793c64968cc1f34241 (diff)
mark set_modes as deprecated
Diffstat (limited to 'xmake')
-rw-r--r--xmake/core/project/deprecated/project.lua21
-rw-r--r--xmake/core/sandbox/modules/import/core/project/project.lua11
2 files changed, 31 insertions, 1 deletions
diff --git a/xmake/core/project/deprecated/project.lua b/xmake/core/project/deprecated/project.lua
index a7df6594c..45353098b 100644
--- a/xmake/core/project/deprecated/project.lua
+++ b/xmake/core/project/deprecated/project.lua
@@ -101,6 +101,24 @@ function deprecated_project._api_add_packages(interp, ...)
return deprecated_project._api_add_pkgs(interp, ...)
end
+-- set modes
+function deprecated_project._api_set_modes(interp, ...)
+
+ -- get api function
+ local apifunc = interp:api_func("set_modes")
+ assert(apifunc)
+
+ -- register api
+ interp:api_register_builtin("set_modes", function (...)
+
+ -- deprecated
+ deprecated.add("add_rules(\"mode.debug\", \"mode.release\")", "set_modes(\"debug\", \"release\")")
+
+ -- dispatch it
+ apifunc(...)
+ end)
+end
+
-- add_csnippet/add_cxxsnippet for option
function deprecated_project._api_option_add_cxsnippet(interp, apiname)
@@ -244,6 +262,9 @@ function deprecated_project.api_register(interp)
-- register api: is_option() to root
interp:api_register(nil, "is_option", deprecated_project._api_is_option)
+ -- register api: set_modes() to root
+ deprecated_project._api_set_modes(interp)
+
-- register api: add_csnippet/add_cxxsnippet() to option
deprecated_project._api_option_add_cxsnippet(interp, "add_csnippet")
deprecated_project._api_option_add_cxsnippet(interp, "add_cxxsnippet")
diff --git a/xmake/core/sandbox/modules/import/core/project/project.lua b/xmake/core/sandbox/modules/import/core/project/project.lua
index a5b3d829d..448ab75a1 100644
--- a/xmake/core/sandbox/modules/import/core/project/project.lua
+++ b/xmake/core/sandbox/modules/import/core/project/project.lua
@@ -169,7 +169,16 @@ end
-- get the project modes
function sandbox_core_project.modes()
- return project.get("modes")
+ local modes = project.get("modes") or {}
+ for _, target in pairs(table.wrap(project.targets())) do
+ for _, rule in ipairs(target:orderules()) do
+ local name = rule:name()
+ if name:startswith("mode.") then
+ table.insert(modes, name:sub(6))
+ end
+ end
+ end
+ return table.unique(modes)
end
-- get the the given require info