chipmunk-rb / chipmunk-ffi

chipmunk ruby bindings using ffi
26 stars 6 forks source link

How do I use it with JRuby? #5

Closed utgarda closed 14 years ago

utgarda commented 14 years ago

Hi! Could you help me out? What should one do to use chipmunk-ffi with jruby? I need it, since I'm trying to use it with ruby-processing.

./jruby --version jruby 1.5.0.dev (ruby 1.8.7 patchlevel 174) (2010-02-08 50b2e43) (OpenJDK 64-Bit Server VM 1.6.0_0) [amd64-java]

cat ./jruby_chipmunk_ffi.rb require 'rubygems' Gem.clear_paths ENV['GEM_HOME'] = '/home/etsvigun/.gem/ruby/1.8' #Where I actually keep all the gems ENV['GEM_PATH'] = '/home/etsvigun/.gem/ruby/1.8' require 'chipmunk-ffi'

./jruby ../../jruby_chipmunk_ffi.rb /home/etsvigun/devenv/ruby/jruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in require': no such file to load -- ffi_c (LoadError) from /home/etsvigun/devenv/ruby/jruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:inrequire' from /home/etsvigun/.gem/ruby/1.8/gems/ffi-0.6.0/lib/ffi.rb:8 from /home/etsvigun/.gem/ruby/1.8/gems/ffi-0.6.0/lib/ffi.rb:31:in require' from /home/etsvigun/devenv/ruby/jruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inrequire' from /home/etsvigun/.gem/ruby/1.8/gems/nice-ffi-0.3/lib/nice-ffi.rb:31 from /home/etsvigun/.gem/ruby/1.8/gems/nice-ffi-0.3/lib/nice-ffi.rb:31:in require' from /home/etsvigun/devenv/ruby/jruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inrequire' from /home/etsvigun/.gem/ruby/1.8/gems/chipmunk-ffi-1.0.0/lib/chipmunk-ffi.rb:2 from /home/etsvigun/.gem/ruby/1.8/gems/chipmunk-ffi-1.0.0/lib/chipmunk-ffi.rb:36:in require' from /home/etsvigun/devenv/ruby/jruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:inrequire' from ../../jruby_chipmunk_ffi.rb:8

Can't get past this one. I tried to install it all with jruby gem installer, but it just didn't work either :

./jruby gem install chipmunk-ffi JRuby limited openssl loaded. http://jruby.org/openssl gem install jruby-openssl for full support. Building native extensions. This could take a while... ERROR: Error installing chipmunk-ffi: ERROR: Failed to build gem native extension.

/home/etsvigun/devenv/ruby/jruby/bin/jruby extconf.rb WARNING: JRuby does not support native extensions or the mkmf' library. Check http://kenai.com/projects/jruby/pages/Home for alternatives. extconf.rb:4: undefined methoddir_config' for main:Object (NoMethodError)

Gem files will remain installed in /home/etsvigun/devenv/ruby/jruby/lib/ruby/gems/1.8/gems/ffi-0.6.0 for inspection. Results logged to /home/etsvigun/devenv/ruby/jruby/lib/ruby/gems/1.8/gems/ffi-0.6.0/ext/ffi_c/gem_make.out

utgarda commented 14 years ago

Ok, installing ffi-jruby ffi@f4fdb0227d18e4ff2709d73f2ac1c479cbd7e98b to the same place where my other gems are kinda solved the previous step. Now this line stopped working :

func = FFI::Function.new(ret, args, FFI::Pointer.new(self.send(func_name)), :convention => :default )

ends up with ... in `cp_static_inline': can't convert FFI::Pointer into Integer (TypeError)

utgarda commented 14 years ago

Yay! Implicit cast to number fixes it. func = FFI::Function.new(ret, args, FFI::Pointer.new(self.send(func_name)).to_i, :convention => :default ) utgarda@7669f83602fe038f832f6a75550722c94dd000ad

utgarda commented 14 years ago

Will it be closed if I press 'Comment and Close' now? :P