def self.find_header(header_name, language, flags = nil)
extension = detect_language_extension(language)
create_temp_file("passenger-compile-check.#{extension}") do |filename, f|
source = %Q{
#include <#{header_name}>
}
f.puts(source)
f.close
begin
command = create_compiler_command(language,
"-v -c '#{filename}' -o '#{filename}.o'",
flags)
if result = run_compiler("Checking for #{header_name}", command, filename, source, true)
result[:output] =~ /^#include <...> search starts here:$(.+?)^End of search list\.$/m
search_paths = $1.to_s.strip.split("\n").map{ |line| line.strip }
search_paths.each do |dir|
if File.file?("#{dir}/#{header_name}")
return "#{dir}/#{header_name}"
end
end
return true
else
return nil
end
ensure
File.unlink("#{filename}.o") rescue nil
end
end
end