summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-10-27 00:38:01 +0800
committerruki <[email protected]>2021-10-27 00:38:01 +0800
commit63c46927a81593033193b12bbf3a72db5c9726dd (patch)
tree4cc3d2c9509f725a8133c0374ce004800ab34d63
parentab85e9e49a2e5de91631726efaeb9b12fb6babce (diff)
improve armcc and armclang toolchain
-rw-r--r--xmake/core/tool/toolchain.lua2
-rw-r--r--xmake/toolchains/armcc/xmake.lua12
-rw-r--r--xmake/toolchains/armclang/xmake.lua11
3 files changed, 20 insertions, 5 deletions
diff --git a/xmake/core/tool/toolchain.lua b/xmake/core/tool/toolchain.lua
index 59e171d58..2ff1dbc65 100644
--- a/xmake/core/tool/toolchain.lua
+++ b/xmake/core/tool/toolchain.lua
@@ -210,7 +210,7 @@ end
-- get the bin directory
function _instance:bindir()
local bindir = self:config("bindir") or config.get("bin") or self:info():get("bindir")
- if not bindir and self:cross() and self:sdkdir() and os.isdir(path.join(self:sdkdir(), "bin")) then
+ if not bindir and self:is_cross() and self:sdkdir() and os.isdir(path.join(self:sdkdir(), "bin")) then
bindir = path.join(self:sdkdir(), "bin")
end
return bindir
diff --git a/xmake/toolchains/armcc/xmake.lua b/xmake/toolchains/armcc/xmake.lua
index a54269758..1b819bc48 100644
--- a/xmake/toolchains/armcc/xmake.lua
+++ b/xmake/toolchains/armcc/xmake.lua
@@ -23,7 +23,7 @@ toolchain("armcc")
set_homepage("https://www2.keil.com/mdk5/compiler/5")
set_description("ARM Compiler Version 5 of Keil MDK")
- set_kind("standalone")
+ set_kind("cross")
set_toolset("cc", "armcc")
set_toolset("cxx", "armcc")
@@ -33,9 +33,17 @@ toolchain("armcc")
set_toolset("as", "armasm")
on_check(function (toolchain)
- return import("lib.detect.find_tool")("armcc")
+ import("lib.detect.find_tool")
+ import("detect.sdks.find_mdk")
+ local mdk = find_mdk()
+ if mdk and mdk.sdkdir_armcc and find_tool("armcc") then
+ toolchain:config_set("sdkdir", mdk.sdkdir_armcc)
+ toolchain:configs_save()
+ return true
+ end
end)
+
on_load(function (toolchain)
local arch = toolchain:arch()
if arch then
diff --git a/xmake/toolchains/armclang/xmake.lua b/xmake/toolchains/armclang/xmake.lua
index c3fa6afd7..bab9f582b 100644
--- a/xmake/toolchains/armclang/xmake.lua
+++ b/xmake/toolchains/armclang/xmake.lua
@@ -23,7 +23,7 @@ toolchain("armclang")
set_homepage("https://www2.keil.com/mdk5/compiler/6")
set_description("ARM Compiler Version 6 of Keil MDK")
- set_kind("standalone")
+ set_kind("cross")
set_toolset("cc", "armclang")
set_toolset("cxx", "armclang")
@@ -33,7 +33,14 @@ toolchain("armclang")
set_toolset("as", "armasm")
on_check(function (toolchain)
- return import("lib.detect.find_tool")("armclang")
+ import("lib.detect.find_tool")
+ import("detect.sdks.find_mdk")
+ local mdk = find_mdk()
+ if mdk and mdk.sdkdir_armclang and find_tool("armclang") then
+ toolchain:config_set("sdkdir", mdk.sdkdir_armclang)
+ toolchain:configs_save()
+ return true
+ end
end)
on_load(function (toolchain)