File: extconf.rb

package info (click to toggle)
ruby-oj-introspect 0.7.1-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 164 kB
  • sloc: ansic: 193; ruby: 63; makefile: 7; sh: 4
file content (28 lines) | stat: -rw-r--r-- 877 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
require "mkmf"
require "pathname"
require "oj"

oj_version_file = Oj.const_source_location(:VERSION).first
oj_version_file_path = Pathname.new(oj_version_file)

OJ_HEADERS = RbConfig::CONFIG["vendorhdrdir"]+"/oj/"

cc_version = `#{RbConfig.expand("$(CC) --version".dup)}`
if cc_version.match?(/clang/i)
  # Ignore symbols loaded from Oj in case Ruby is compiled without
  # "-Wl,-undefined,dynamic_lookup" (related to https://bugs.ruby-lang.org/issues/19005)
  symfile = File.join(__dir__, 'oj.sym')
  dynamic_symbols = File.readlines(symfile)
  dynamic_symbols.each do |sym|
    $DLDFLAGS << " -Wl,-U,#{sym.strip}"
  end

  # Needed for Ruby 3.2 ABI check: https://github.com/ruby/ruby/pull/5474
  if RUBY_VERSION >= "3.2"
    $LDFLAGS << " -Wl,-exported_symbol,_ruby_abi_version"
  end
end

dir_config('oj', [OJ_HEADERS], [])

create_makefile("oj/introspect/introspect_ext")