Module: GD2::GD2FFI

Extended by:
FFI::Library
Defined in:
lib/gd2-ffij.rb

Class Method Summary collapse

Class Method Details

.gd_library_nameObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/gd2-ffij.rb', line 11

def self.gd_library_name
  return @gd_library_name if defined?(@gd_library_name)

  @gd_library_name = if RbConfig::CONFIG['host_os'] == 'cygwin'
    'cyggd-2.dll'
  elsif RbConfig::CONFIG['host_os'] =~ /mingw/
    ffi_convention(:stdcall)
    'bgd.dll'
  else
    paths = if ENV['GD2_LIBRARY_PATH']
      [ ENV['GD2_LIBRARY_PATH'] ]
    else
      [ '/usr/local/{lib64,lib}', '/opt/local/{lib64,lib}', '/usr/{lib64,lib}', '/usr/lib/{x86_64,i386}-linux-gnu' ]
    end

    lib = if [
      RbConfig::CONFIG['arch'],
      RbConfig::CONFIG['host_os']
    ].detect { |c| c =~ /darwin/ }
      'libgd.dylib'
    else
      'libgd.so'
    end

    Dir.glob(paths.collect { |path|
      "#{path}/#{lib}{.*,}"
    }).first
  end
end