This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
if RUBY_ENGINE == 'ruby'
|
||||
begin
|
||||
require RUBY_VERSION.split('.')[0, 2].join('.') + '/ffi_c'
|
||||
rescue Exception
|
||||
require 'ffi_c'
|
||||
end
|
||||
|
||||
require 'ffi/ffi'
|
||||
|
||||
elsif RUBY_ENGINE == 'jruby' && (RUBY_ENGINE_VERSION.split('.').map(&:to_i) <=> [9, 2, 20]) >= 0
|
||||
JRuby::Util.load_ext("org.jruby.ext.ffi.FFIService")
|
||||
require 'ffi/ffi'
|
||||
|
||||
elsif RUBY_ENGINE == 'truffleruby' && (RUBY_ENGINE_VERSION.split('.').map(&:to_i) <=> [20, 1, 0]) >= 0
|
||||
require 'truffleruby/ffi_backend'
|
||||
require 'ffi/ffi'
|
||||
|
||||
else
|
||||
# Remove the ffi gem dir from the load path, then reload the internal ffi implementation
|
||||
$LOAD_PATH.delete(File.dirname(__FILE__))
|
||||
$LOAD_PATH.delete(File.join(File.dirname(__FILE__), 'ffi'))
|
||||
unless $LOADED_FEATURES.nil?
|
||||
$LOADED_FEATURES.delete(__FILE__)
|
||||
$LOADED_FEATURES.delete('ffi.rb')
|
||||
end
|
||||
require 'ffi.rb'
|
||||
end
|
||||
Reference in New Issue
Block a user