module GD2::GD2FFI

Constants

FFI_LAYOUT

Public Class Methods

gd_library_name() click to toggle source
# 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