summaryrefslogtreecommitdiff
path: root/xmake/modules
diff options
context:
space:
mode:
authorruki <[email protected]>2021-12-08 22:30:38 +0800
committerruki <[email protected]>2021-12-08 22:30:38 +0800
commitdedcd548ec31ad936128b272c705f8f30fb01eb2 (patch)
treecae8d7b373d1eacb097298f022780d75abc6eb6a /xmake/modules
parent86eaab2842abf6570895da359ed484805bf759a5 (diff)
improve ifort
Diffstat (limited to 'xmake/modules')
-rw-r--r--xmake/modules/detect/sdks/find_ifortenv.lua18
-rw-r--r--xmake/modules/detect/tools/find_ifort.lua14
2 files changed, 15 insertions, 17 deletions
diff --git a/xmake/modules/detect/sdks/find_ifortenv.lua b/xmake/modules/detect/sdks/find_ifortenv.lua
index f3aafad06..f45bda0d5 100644
--- a/xmake/modules/detect/sdks/find_ifortenv.lua
+++ b/xmake/modules/detect/sdks/find_ifortenv.lua
@@ -116,12 +116,24 @@ end
-- find intel fortran envirnoment on linux
function _find_intel_on_linux(opt)
- -- attempt to find the sdk directory
local paths = {"/opt/intel/bin", "/usr/local/bin", "/usr/bin"}
local ifort = find_file("ifort", paths)
if ifort then
- local sdkdir = path.directory(path.directory(ifort))
- return {sdkdir = sdkdir, bindir = path.directory(ifort), path.join(sdkdir, "include"), libdir = path.join(sdkdir, "lib")}
+ local bindir = path.directory(ifort)
+ local sdkdir = path.directory(bindir)
+ return {sdkdir = sdkdir, bindir = bindir, libdir = path.join(sdkdir, "lib")}
+ end
+
+ if is_host("linux") then
+ local arch = os.arch() == "x86_64" and "intel64" or "ia32"
+ local host = is_host("macosx") and "macos" or "linux"
+ local paths = {"~/intel/oneapi/compiler/latest/" .. host .. "/bin/" .. arch}
+ local ifort = find_file("ifort", paths)
+ if ifort then
+ local bindir = path.directory(ifort)
+ local sdkdir = path.directory(bindir)
+ return {sdkdir = sdkdir, bindir = bindir, libdir = path.join(sdkdir, "compiler", "lib", arch)}
+ end
end
end
diff --git a/xmake/modules/detect/tools/find_ifort.lua b/xmake/modules/detect/tools/find_ifort.lua
index dfa8f254c..31f158996 100644
--- a/xmake/modules/detect/tools/find_ifort.lua
+++ b/xmake/modules/detect/tools/find_ifort.lua
@@ -52,20 +52,6 @@ function main(opt)
return program, version
else
-- find program
- if is_host("linux") then
- local arch = os.arch() == "x86_64" and "intel64" or "ia32"
- local dirs = {"~/intel/oneapi/compiler/latest/linux"}
- opt.envs = opt.envs or {}
- opt.paths = opt.paths or {}
- local LD_LIBRARY_PATH = {}
- for _, dir in ipairs(dirs) do
- if os.isdir(dir) then
- table.insert(LD_LIBRARY_PATH, path.join(dir, "compiler/lib", arch))
- table.insert(opt.paths, path.join(dir, "bin", arch))
- end
- end
- opt.envs.LD_LIBRARY_PATH = path.joinenv(LD_LIBRARY_PATH)
- end
local program = find_program(opt.program or "ifort", opt)
-- find program version