def self.try_compile_with_warning_flag(description, language, source, flags = nil)
extension = detect_language_extension(language)
result = nil
create_temp_file("passenger-compile-check.#{extension}") do |filename, f|
f.puts(source)
f.close
command = create_compiler_command(language,
"-c '#{filename}' -o '#{filename}.o'",
flags)
result = run_compiler(description, command, filename, source, true)
result = result && result[:result] && result[:output] !~ /unknown warning option/i
end
return false if !result
create_temp_file("passenger-compile-check.#{extension}") do |filename, f|
source = %Q{
void foo() {
return error;
}
}
f.puts(source)
f.close
command = create_compiler_command(language,
"-c '#{filename}' -o '#{filename}.o'",
flags)
result = run_compiler("#{description} (really)", command, filename, source, :always)
end
result && !result[:output].include?(flags)
end