summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcofecofe <[email protected]>2024-06-24 19:29:05 +0800
committercofecofe <[email protected]>2024-06-24 19:29:05 +0800
commit86b549d7ec56de8fcc19a3ce6f8fbcbf6661dc8b (patch)
tree383db2290f1cdc623e77e37944c1940feafa08b4
parent325cc705e90699ae827bdcb0f48c2e596900b86c (diff)
change the way to load toolset and add flags
-rw-r--r--xmake/modules/detect/tools/find_armclang.lua1
-rw-r--r--xmake/toolchains/armclang/xmake.lua36
2 files changed, 16 insertions, 21 deletions
diff --git a/xmake/modules/detect/tools/find_armclang.lua b/xmake/modules/detect/tools/find_armclang.lua
index 6232138c9..0b33ac6fc 100644
--- a/xmake/modules/detect/tools/find_armclang.lua
+++ b/xmake/modules/detect/tools/find_armclang.lua
@@ -40,7 +40,6 @@ function main(opt)
-- init options
opt = opt or {}
- opt.command = opt.command or "--version"
opt.parse = opt.parse or function (output) return output:match("Arm Compiler for Embedded (%d+%.?%d+%.?%d+)%s") end
-- find program
diff --git a/xmake/toolchains/armclang/xmake.lua b/xmake/toolchains/armclang/xmake.lua
index 3fa8885d4..def28bd91 100644
--- a/xmake/toolchains/armclang/xmake.lua
+++ b/xmake/toolchains/armclang/xmake.lua
@@ -32,11 +32,20 @@ toolchain("armclang")
-- different assembler choices for different versions of armclang
on_check(function (toolchain)
+ import("core.base.semver")
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
+ local armclang = find_tool("armclang", {version = true, force = true, paths = toolchain:bindir()})
+ if mdk and mdk.sdkdir_armclang then
toolchain:config_set("sdkdir", mdk.sdkdir_armclang)
+ if armclang and semver.compare(armclang.version, "6.13")>0 then
+ toolchain:config_set("toolset.as", "armclang")
+ toolchain:config_set("asflags.cpu", "-mcpu=")
+ else
+ toolchain:config_set("toolset.as", "armasm")
+ toolchain:config_set("asflags.cpu", "--cpu=")
+ end
toolchain:configs_save()
return true
end
@@ -56,25 +65,12 @@ toolchain("armclang")
arch_cpu_ld = arch_cpu:replace("cortex-a", "Cortex-A", {plain = true})
arch_target = "aarch64-arm-none-eabi"
end
-
- import("lib.detect.find_tool")
- import("core.base.semver")
- local armclang = find_tool("armclang", {version = true})
- if semver.compare(armclang.version, "6.13")>0 then
- toolchain:set("toolset", "as", "armclang")
- toolchain:add("cxflags", "--target=" .. arch_target)
- toolchain:add("cxflags", "-mcpu=" .. arch_cpu)
- toolchain:add("asflags", "--target=" .. arch_target)
- toolchain:add("asflags", "-mcpu=" .. arch_cpu)
- toolchain:add("ldflags", "--cpu " .. arch_cpu_ld)
- else
- toolchain:set("toolset", "as", "armasm")
- toolchain:add("cxflags", "--target=" .. arch_target)
- toolchain:add("cxflags", "-mcpu=" .. arch_cpu)
- toolchain:add("asflags", "-target=" .. arch_target)
- toolchain:add("asflags", "--cpu=" .. arch_cpu)
- toolchain:add("ldflags", "--cpu " .. arch_cpu_ld)
- end
+ toolchain:set("toolset", "as", toolchain:config("toolset.as"))
+ toolchain:add("cxflags", "--target=" .. arch_target)
+ toolchain:add("cxflags", "-mcpu=" .. arch_cpu)
+ toolchain:add("asflags", "--target=" .. arch_target)
+ toolchain:add("asflags", toolchain:config("asflags.cpu") .. arch_cpu)
+ toolchain:add("ldflags", "--cpu " .. arch_cpu_ld)
end
end)