def check_cairo(options={})
return false unless PKGConfig.have_package('cairo')
rcairo_source_dir = options[:rcairo_source_dir]
if rcairo_source_dir and !File.exist?(rcairo_source_dir)
rcairo_source_dir = nil
end
$CFLAGS += " -I#{rcairo_source_dir}/ext/cairo" if rcairo_source_dir
have_rb_cairo_h = have_header('rb_cairo.h')
unless have_rb_cairo_h
begin
require 'rubygems'
gem 'cairo'
require 'cairo'
rcairo_src_gem_path_re =
/\A#{Regexp.escape(Gem.dir)}\/gems\/cairo-[\d.]+\/ext\/cairo\z/
$LOAD_PATH.each do |path|
if rcairo_src_gem_path_re =~ path
$CFLAGS += " -I#{path} "
have_rb_cairo_h = have_header('rb_cairo.h')
break
end
end
rescue LoadError
end
end
if have_rb_cairo_h
if /mingw|cygwin|mswin32/ =~ RUBY_PLATFORM
options = {}
build_dir = "tmp/#{RUBY_PLATFORM}/cairo/#{RUBY_VERSION}"
if File.exist?(File.join(rcairo_source_dir, build_dir))
options[:target_build_dir] = build_dir
end
add_depend_package("cairo", "ext/cairo", rcairo_source_dir, options)
$defs << "-DRUBY_CAIRO_PLATFORM_WIN32"
end
end
have_rb_cairo_h
end