diff options
| author | cofecofe <[email protected]> | 2024-06-24 19:29:05 +0800 |
|---|---|---|
| committer | cofecofe <[email protected]> | 2024-06-24 19:29:05 +0800 |
| commit | 86b549d7ec56de8fcc19a3ce6f8fbcbf6661dc8b (patch) | |
| tree | 383db2290f1cdc623e77e37944c1940feafa08b4 | |
| parent | 325cc705e90699ae827bdcb0f48c2e596900b86c (diff) | |
change the way to load toolset and add flags
| -rw-r--r-- | xmake/modules/detect/tools/find_armclang.lua | 1 | ||||
| -rw-r--r-- | xmake/toolchains/armclang/xmake.lua | 36 |
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) |
