Skip to content

Commit 62d7209

Browse files
committed
fix autoloader: select existing directories
1 parent cd0e4e2 commit 62d7209

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

lib/numo/linalg/autoloader.rb

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,16 @@ def load_library
2626
lapacke_dirs = ['/opt/lapack/lib', '/opt/lapack/lib64', '/opt/local/lib/lapack',
2727
'/usr/local/opt/lapack/lib']
2828
opt_dirs = ['/opt/local/lib', '/opt/local/lib64', '/opt/lib', '/opt/lib64']
29-
base_dirs = ['/usr/local/lib', '/usr/local/lib64', '/usr/lib', '/usr/lib64', '/usr/lib/x86_64-linux-gnu']
29+
base_dirs = ['/usr/local/lib', '/usr/local/lib64', '/usr/lib', '/usr/lib64']
3030
base_dirs.concat(Dir["/usr/lib/#{RbConfig::CONFIG['host_cpu']}-*"])
3131
base_dirs.unshift(*ENV['LD_LIBRARY_PATH'].split(':')) unless ENV['LD_LIBRARY_PATH'].nil?
3232

33+
select_dirs(base_dirs)
34+
select_dirs(opt_dirs)
35+
select_dirs(lapacke_dirs)
36+
select_dirs(atlas_dirs)
37+
select_dirs(mkl_dirs)
38+
3339
mkl_libs = find_mkl_libs([*base_dirs, *opt_dirs, *mkl_dirs])
3440
openblas_libs = find_openblas_libs([*base_dirs, *opt_dirs, *openblas_dirs])
3541
atlas_libs = find_atlas_libs([*base_dirs, *opt_dirs, *atlas_dirs, *lapacke_dirs])
@@ -68,11 +74,18 @@ def detect_library_extension
6874
end
6975
end
7076

77+
def select_dirs(dirs)
78+
dirs.select!{|d| Dir.exist?(d)}
79+
end
80+
7181
def find_libs(lib_names, lib_dirs)
7282
lib_ext = detect_library_extension
7383
lib_arr = lib_names.map do |l|
74-
[l.to_sym, lib_dirs.map { |d| Dir.glob("#{d}/lib#{l}{,64}.#{lib_ext}{,.[0-9]}").last }
75-
.compact.first]
84+
x = nil
85+
lib_dirs.each do |d|
86+
break if x = Dir.glob("#{d}/lib#{l}{,64}.#{lib_ext}{,.*}").last
87+
end
88+
[l.to_sym, x]
7689
end
7790
Hash[*lib_arr.flatten]
7891
end

0 commit comments

Comments
 (0)