summaryrefslogtreecommitdiff
path: root/xmake/modules/detect/sdks/find_iccenv.lua
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/modules/detect/sdks/find_iccenv.lua')
-rw-r--r--xmake/modules/detect/sdks/find_iccenv.lua21
1 files changed, 21 insertions, 0 deletions
diff --git a/xmake/modules/detect/sdks/find_iccenv.lua b/xmake/modules/detect/sdks/find_iccenv.lua
index 0e432a99c..2eb2c353c 100644
--- a/xmake/modules/detect/sdks/find_iccenv.lua
+++ b/xmake/modules/detect/sdks/find_iccenv.lua
@@ -102,6 +102,11 @@ function _find_intel_on_windows(opt)
-- find iclvars_bat.bat
local paths = {"$(env ICPP_COMPILER20)"}
local iclvars_bat = find_file("bin/iclvars.bat", paths)
+ -- look for setvars.bat which is new in 2021
+ if not iclvars_bat then
+ paths = {"$(env ICPP_COMPILER21)"}
+ iclvars_bat = find_file("../../../setvars.bat", paths)
+ end
if iclvars_bat then
-- load iclvars_bat
@@ -123,6 +128,22 @@ function _find_intel_on_linux(opt)
local sdkdir = path.directory(path.directory(icc))
return {sdkdir = sdkdir, bindir = path.directory(icc), path.join(sdkdir, "include"), libdir = path.join(sdkdir, "lib")}
end
+
+ -- find it from oneapi sdk directory
+ local oneapi_rootdirs = {"~/intel/oneapi/compiler", "/opt/intel/oneapi/compiler"}
+ local arch = os.arch() == "x86_64" and "intel64" or "ia32"
+ paths = {}
+ for _, rootdir in ipairs(oneapi_rootdirs) do
+ table.insert(paths, path.join(rootdir, "*", is_host("macosx") and "mac" or "linux", "bin", arch))
+ end
+ if #paths > 0 then
+ local icc = find_file("icc", paths)
+ if icc then
+ local bindir = path.directory(icc)
+ local sdkdir = path.directory(bindir)
+ return {sdkdir = sdkdir, bindir = bindir, libdir = path.join(sdkdir, "compiler", "lib", arch)}
+ end
+ end
end
-- find intel c/c++ environment