On Wed, Jan 14, 2009 at 02:20:00PM +0900, John Ky wrote:
Hi,
I’m building ruby extensions across many different OSes and architectures.
Does anyone know an easy way to find ruby.h on any given system?
I’m told that perl has a “perl -V” or @ENV variable which gives some paths I
can look through for perl.h.
Does Ruby have an equivalent? Is there a better way to find ruby.h?
This works on a couple of my systems:
require 'rbconfig'
loc = File.join( Config::CONFIG['archdir'], 'ruby.h')
if File.exist?( loc ) then
puts loc
else
puts "Unable to find ruby.h in #{loc}"
end
Does Ruby have an equivalent? Is there a better way to find ruby.h?
Thanks,
-John
I have used CMake to make a SWIG wrapper with success on Windows and
Linux. The FindRuby.cmake script does all of the hard work at locating
Ruby.h. CMake-2.6.2 (and possibly others) includes FindRuby.cmake and
can be used like so:
(Note: FindRuby.cmake doesn’t export RUBY_FOUND, so I create that var
myself)
Main CMakeLists.txt:
…
SET(RUBY_FOUND FALSE)
FIND_PACKAGE( Ruby)
if(RUBY_INCLUDE_PATH AND RUBY_LIBRARY)
SET(RUBY_FOUND TRUE)
endif(RUBY_INCLUDE_PATH AND RUBY_LIBRARY)
…
if(RUBY_FOUND)
INCLUDE_DIRECTORIES( ${RUBY_INCLUDE_PATH})
endif(RUBY_FOUND)
…