module Proj4::FFIProj4

Constants

FFI_LAYOUT

Public Class Methods

proj4_library_path() click to toggle source
# File lib/ffi-proj4.rb, line 24
def self.proj4_library_path
  return @proj4_library_path if defined?(@proj4_library_path)

  lib = if FFI::Platform::IS_WINDOWS
    # For MinGW and the official binaries
    '{libproj-?,proj}.dll'
  else
    "libproj.#{FFI::Platform::LIBSUFFIX}"
  end

  paths = if ENV['PROJ4_LIBRARY_PATH']
    [ ENV['PROJ4_LIBRARY_PATH'] ]
  elsif FFI::Platform::IS_WINDOWS
    ENV['PATH'].split(File::PATH_SEPARATOR)
  else
    [ '/usr/local/{lib64,lib}', '/opt/local/{lib64,lib}', '/usr/{lib64,lib}', '/usr/lib/{x86_64,i386}-linux-gnu' ]
  end

  @proj4_library_path = Dir.glob(paths.collect { |path|
    File.expand_path(File.join(path, lib))
  }).first
end