|
5 | 5 | have_func("rb_enc_interned_str", "ruby.h") # Ruby 3.0+ |
6 | 6 | have_func("rb_hash_new_capa", "ruby.h") # Ruby 3.2+ |
7 | 7 |
|
8 | | -$CFLAGS << " -fvisibility=hidden " |
9 | | - |
10 | | -unless RUBY_PLATFORM.include? 'mswin' |
11 | | - $CFLAGS << %[ -I.. -Wall -O3 #{RbConfig::CONFIG["debugflags"]} -std=gnu99] |
12 | | -end |
| 8 | +append_cflags([ |
| 9 | + "-fvisibility=hidden", |
| 10 | + "-I..", |
| 11 | + "-Wall", |
| 12 | + "-O3", |
| 13 | + "-std=gnu99" |
| 14 | +]) |
| 15 | +append_cflags(RbConfig::CONFIG["debugflags"]) if RbConfig::CONFIG["debugflags"] |
13 | 16 |
|
14 | 17 | if RUBY_VERSION.start_with?('3.0.') && RUBY_VERSION <= '3.0.5' |
15 | 18 | # https://bugs.ruby-lang.org/issues/18772 |
16 | | - $CFLAGS << ' -DRB_ENC_INTERNED_STR_NULL_CHECK=1 ' |
| 19 | + append_cflags("-DRB_ENC_INTERNED_STR_NULL_CHECK=1") |
17 | 20 | end |
18 | 21 |
|
19 | 22 | # checking if Hash#[]= (rb_hash_aset) dedupes string keys (Ruby 2.6+) |
|
23 | 26 | h[%W(#{r}).join('')] = :foo |
24 | 27 | x[%W(#{r}).join('')] = :foo |
25 | 28 | if x.keys[0].equal?(h.keys[0]) |
26 | | - $CFLAGS << ' -DHASH_ASET_DEDUPE=1 ' |
| 29 | + append_cflags("-DHASH_ASET_DEDUPE=1") |
27 | 30 | else |
28 | | - $CFLAGS << ' -DHASH_ASET_DEDUPE=0 ' |
| 31 | + append_cflags("-DHASH_ASET_DEDUPE=0") |
29 | 32 | end |
30 | 33 |
|
31 | 34 | # checking if String#-@ (str_uminus) directly interns frozen strings... ' (Ruby 3.0+) |
32 | 35 | begin |
33 | 36 | s = rand.to_s.freeze |
34 | 37 | if (-s).equal?(s) && (-s.dup).equal?(s) |
35 | | - $CFLAGS << ' -DSTR_UMINUS_DEDUPE_FROZEN=1 ' |
| 38 | + append_cflags("-DSTR_UMINUS_DEDUPE_FROZEN=1") |
36 | 39 | else |
37 | | - $CFLAGS << ' -DSTR_UMINUS_DEDUPE_FROZEN=0 ' |
| 40 | + append_cflags("-DSTR_UMINUS_DEDUPE_FROZEN=0") |
38 | 41 | end |
39 | 42 | rescue NoMethodError |
40 | | - $CFLAGS << ' -DSTR_UMINUS_DEDUPE_FROZEN=0 ' |
| 43 | + append_cflags("-DSTR_UMINUS_DEDUPE_FROZEN=0") |
41 | 44 | end |
42 | 45 |
|
43 | 46 | if warnflags = CONFIG['warnflags'] |
|
0 commit comments