Module: Proj4::FFIProj4
- Extended by:
- FFI::Library
- Defined in:
- lib/ffi-proj4.rb
Constant Summary collapse
- FFI_LAYOUT =
{ :pj_get_release => [ :string ], :pj_init_plus => [ :pointer, :string ], :pj_free => [ :void, :pointer ], :pj_is_latlong => [ :int, :pointer ], :pj_is_geocent => [ :int, :pointer ], :pj_get_def => [ :string, :pointer, :int ], :pj_latlong_from_proj => [ :pointer, :pointer ], :pj_set_finder => [ :void, callback([ :string ], :string) ], :pj_set_searchpath => [ :void, :int, :pointer ], :pj_deallocate_grids => [ :void ], :pj_strerrno => [ :string, :int ], :pj_get_errno_ref => [ :pointer ], :pj_fwd => [ Proj4::ProjXY.by_value, Proj4::ProjXY.by_value, :pointer ], :pj_inv => [ Proj4::ProjXY.by_value, Proj4::ProjXY.by_value, :pointer ], :pj_transform => [ :int, :pointer, :pointer, :long, :int, :pointer, :pointer, :pointer ], :pj_datum_transform => [ :int, :pointer, :pointer, :long, :int, :pointer, :pointer, :pointer ], :setenv => [ :int, :string, :string, :int ] }
Class Method Summary collapse
Class Method Details
.proj4_library_path ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# 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.(File.join(path, lib)) }).first end |