summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-05-26 22:39:13 +0800
committerruki <[email protected]>2020-05-26 09:55:18 +0800
commit7815a23fa7483352aad20834edb486fe60051811 (patch)
tree440c657b7922c1cfd9c9c76648991017ea304202
parent11c655cdde82b1c82c25ea29227e90cea658ba35 (diff)
add set_toolsets for target
-rw-r--r--tests/apis/set_toolchains/xmake.lua1
-rw-r--r--xmake/core/project/deprecated/project.lua23
-rw-r--r--xmake/core/project/target.lua5
3 files changed, 25 insertions, 4 deletions
diff --git a/tests/apis/set_toolchains/xmake.lua b/tests/apis/set_toolchains/xmake.lua
index 4057322d8..f2433cb45 100644
--- a/tests/apis/set_toolchains/xmake.lua
+++ b/tests/apis/set_toolchains/xmake.lua
@@ -25,6 +25,7 @@ add_rules("mode.debug", "mode.release")
target("test")
set_kind("static")
add_files("src/interface.cpp")
+ set_toolsets("ar", "ar")
target("demo")
set_kind("binary")
diff --git a/xmake/core/project/deprecated/project.lua b/xmake/core/project/deprecated/project.lua
index f1313c270..b42a3b40b 100644
--- a/xmake/core/project/deprecated/project.lua
+++ b/xmake/core/project/deprecated/project.lua
@@ -253,7 +253,25 @@ function deprecated_project._api_target_set_tools(interp)
interp:_api_within_scope_set("target", "set_tools", function (key, value, ...)
-- deprecated
- deprecated.add("set_tools(%s, %s)", "set_toolchain(%s, %s)", tostring(key), tostring(value))
+ deprecated.add("set_toolsets(%s, %s)", "set_tools(%s, %s)", tostring(key), tostring(value))
+
+ -- dispatch it
+ apifunc(key, value, ...)
+ end)
+end
+
+-- set_toolchain for target
+function deprecated_project._api_target_set_toolchain(interp)
+
+ -- get api function
+ local apifunc = interp:_api_within_scope("target", "set_toolchain")
+ assert(apifunc)
+
+ -- register api
+ interp:_api_within_scope_set("target", "set_toolchain", function (key, value, ...)
+
+ -- deprecated
+ deprecated.add("set_toolsets(%s, %s)", "set_toolchain(%s, %s)", tostring(key), tostring(value))
-- dispatch it
apifunc(key, value, ...)
@@ -331,9 +349,10 @@ function deprecated_project.api_register(interp)
-- register api: set_headerdir() to target
deprecated_project._api_target_set_headerdir(interp)
- -- register api: set_tools/add_tools() to target
+ -- register api: set_toolchain/set_tools/add_tools() to target
deprecated_project._api_target_set_tools(interp)
deprecated_project._api_target_add_tools(interp)
+ deprecated_project._api_target_set_toolchain(interp)
end
-- return module: deprecated_project
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua
index a25578677..2054e4ed6 100644
--- a/xmake/core/project/target.lua
+++ b/xmake/core/project/target.lua
@@ -1681,7 +1681,7 @@ function _instance:tool(toolkind)
toolinfo = {}
-- get program from set_toolchain/set_tools (deprecated)
- program = self:get("toolchain." .. toolkind)
+ program = self:get("toolsets." .. toolkind) or self:get("toolchain." .. toolkind)
if not program then
local tools = self:get("tools") -- TODO: deprecated
if tools then
@@ -1778,7 +1778,8 @@ function target.apis()
"target.set_values"
, "target.set_configvar"
, "target.set_runenv"
- , "target.set_toolchain"
+ , "target.set_toolchain" -- TODO: deprecated
+ , "target.set_toolsets"
, "target.set_policy"
-- target.add_xxx
, "target.add_values"