From c74b2ffe7cac1192bc6d567f5c2b9f086a78c6aa Mon Sep 17 00:00:00 2001 From: ruki Date: Tue, 9 Jul 2024 22:53:03 +0800 Subject: fix ifx env --- xmake/modules/detect/tools/find_ifx.lua | 29 ++++++++++++++++++++++++----- xmake/toolchains/ifx/load.lua | 27 ++++++++------------------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/xmake/modules/detect/tools/find_ifx.lua b/xmake/modules/detect/tools/find_ifx.lua index d6225d67f..135b74f06 100644 --- a/xmake/modules/detect/tools/find_ifx.lua +++ b/xmake/modules/detect/tools/find_ifx.lua @@ -37,10 +37,29 @@ import("lib.detect.find_programver") -- function main(opt) opt = opt or {} - local program = find_program(opt.program or "ifx", opt) - local version = nil - if program and opt.version then - version = find_programver(program, opt) + if is_host("windows") then + -- find program + opt.check = opt.check or function (program) os.runv(program, {"/help"}, {envs = opt.envs}) end + local program = find_program(opt.program or "ifx.exe", opt) + + -- find program version + local version = nil + if program and opt and opt.version then + opt.command = opt.command or function () local _, info = os.iorunv(program, {"/help"}, {envs = opt.envs}); return info end + opt.parse = opt.parse or function (output) return output:match("Version (%d+%.?%d*%.?%d*.-)%s") end + version = find_programver(program, opt) + end + return program, version + else + -- find program + local program = find_program(opt.program or "ifx", opt) + + -- find program version + local version = nil + if program and opt.version then + version = find_programver(program, opt) + end + return program, version end - return program, version end + diff --git a/xmake/toolchains/ifx/load.lua b/xmake/toolchains/ifx/load.lua index 90fc7910c..217b574fd 100644 --- a/xmake/toolchains/ifx/load.lua +++ b/xmake/toolchains/ifx/load.lua @@ -79,27 +79,16 @@ end function _load_intel_on_windows(toolchain) -- set toolset - if toolchain:is_plat("windows") then - toolchain:set("toolset", "cc", "ifx.exe") - toolchain:set("toolset", "cxx", "ifx.exe") - toolchain:set("toolset", "mrc", "rc.exe") - if toolchain:is_arch("x64") then - toolchain:set("toolset", "as", "ml64.exe") - else - toolchain:set("toolset", "as", "ml.exe") - end - toolchain:set("toolset", "ld", "link.exe") - toolchain:set("toolset", "sh", "link.exe") - toolchain:set("toolset", "ar", "link.exe") + toolchain:set("toolset", "fc", "ifx.exe") + toolchain:set("toolset", "mrc", "rc.exe") + if toolchain:is_arch("x64") then + toolchain:set("toolset", "as", "ml64.exe") else - toolchain:set("toolset", "cc", "ifx") - toolchain:set("toolset", "cxx", "icpx", "ifx") - toolchain:set("toolset", "ld", "icpx", "ifx") - toolchain:set("toolset", "sh", "icpx", "ifx") - toolchain:set("toolset", "ar", "ar") - toolchain:set("toolset", "strip", "strip") - toolchain:set("toolset", "as", "ifx") + toolchain:set("toolset", "as", "ml.exe") end + toolchain:set("toolset", "fcld", "ifx.exe") + toolchain:set("toolset", "fcsh", "ifx.exe") + toolchain:set("toolset", "ar", "link.exe") -- add vs/ifx environments local expect_vars = {"PATH", "LIB", "INCLUDE", "LIBPATH"} -- cgit v1.3.1