class Object
Constants
- IS_DARWIN
- IS_MINGW
- IS_MSWIN
Public Instance Methods
Source
# File lib/mkmf-rice.rb, line 10 def cpp_command(outfile, opt="") conf = cc_config(opt) if $universal and (arch_flag = conf['ARCH_FLAG']) and !arch_flag.empty? conf['ARCH_FLAG'] = arch_flag.gsub(/(?:\G|\s)-arch\s+\S+/, '') end RbConfig::expand("$(CXX) -E #$INCFLAGS #$CPPFLAGS #$CFLAGS #{opt} #{CONFTEST_CXX} #{outfile}", conf) end
Source
# File lib/mkmf-rice.rb, line 69 def have_libffi # Check for libffi to support C style callacks. libffi_usable = system_libffi_usable? $CPPFLAGS += " -DHAVE_LIBFFI" if libffi_usable libffi_usable end
Source
# File lib/mkmf-rice.rb, line 47 def system_libffi_usable? # We need pkg_config or ffi.h libffi_ok = pkg_config("libffi") || have_header("ffi.h") || find_header("ffi.h", "/usr/local/include", "/usr/include/ffi", "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/ffi", "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ffi") || (find_header("ffi.h", `xcrun --sdk macosx --show-sdk-path`.strip + "/usr/include/ffi") rescue false) # Ensure we can link to ffi_prep_closure_loc libffi_ok &&= have_library("ffi", "ffi_prep_closure_loc", [ "ffi.h" ]) || have_library("libffi", "ffi_prep_closure_loc", [ "ffi.h" ]) || have_library("libffi-8", "ffi_prep_closure_loc", [ "ffi.h" ]) if RbConfig::CONFIG['host_os'] =~ /mswin/ have_library('libffi_convenience') have_library('shlwapi') end libffi_ok end
Copied from Ruby FFI bindings - see github.com/ffi/ffi/blob/1715332d553d53fae13fd9fcbbd9d2c1982a5c2f/ext/ffi_c/extconf.rb#L7C1-L27C6