diff options
| author | ruki <[email protected]> | 2021-10-27 00:38:01 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-10-27 00:38:01 +0800 |
| commit | 63c46927a81593033193b12bbf3a72db5c9726dd (patch) | |
| tree | 4cc3d2c9509f725a8133c0374ce004800ab34d63 | |
| parent | ab85e9e49a2e5de91631726efaeb9b12fb6babce (diff) | |
improve armcc and armclang toolchain
| -rw-r--r-- | xmake/core/tool/toolchain.lua | 2 | ||||
| -rw-r--r-- | xmake/toolchains/armcc/xmake.lua | 12 | ||||
| -rw-r--r-- | xmake/toolchains/armclang/xmake.lua | 11 |
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) |
