diff options
Diffstat (limited to 'xmake/modules/detect/sdks/find_iccenv.lua')
| -rw-r--r-- | xmake/modules/detect/sdks/find_iccenv.lua | 21 |
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 |
