mirror of
https://github.com/ruby/ruby.git
synced 2025-08-24 05:25:34 +02:00
28 lines
959 B
Ruby
28 lines
959 B
Ruby
#
|
|
# Under compilers with WERRORFLAG, MakeMakefile.try_compile treats warnings as errors, so we can
|
|
# use append_cflags to test whether the public header files emit warnings with certain flags turned
|
|
# on.
|
|
#
|
|
def check_append_cflags(flag, msg = nil)
|
|
msg ||= "flag #{flag} is not acceptable"
|
|
if $CFLAGS.include?(flag)
|
|
raise("flag #{flag} already present in $CFLAGS")
|
|
end
|
|
append_cflags(flag)
|
|
unless $CFLAGS.include?(flag)
|
|
system("cat mkmf.log")
|
|
raise(msg)
|
|
end
|
|
end
|
|
|
|
if %w[gcc clang].include?(RbConfig::CONFIG['CC'])
|
|
config_string("WERRORFLAG") or raise("expected WERRORFLAG to be defined")
|
|
|
|
# should be acceptable on all modern C compilers
|
|
check_append_cflags("-D_TEST_OK", "baseline compiler warning test failed")
|
|
|
|
# Feature #20507: Allow compilation of C extensions with -Wconversion
|
|
check_append_cflags("-Wconversion", "-Wconversion raising warnings in public headers")
|
|
end
|
|
|
|
create_makefile("-test-/public_header_warnings")
|