[ruby/bigdecimal] Stub out extension build on JRuby

JRuby currently ships its own internal bigdecimal extension as
part of the core libraries. In order for users to be able to add
bigdecimal to their Gemfile or gem dependencies, we need to stub
out the C extension and just load the extension shipped with
JRuby.

In the future we will try to move our BigDecimal implementation
into the gem, but for now this is the simplest way to make it
installable on JRuby.

See #169

https://github.com/ruby/bigdecimal/commit/829956c643
This commit is contained in:
Charles Oliver Nutter 2023-02-08 21:01:46 +01:00 committed by git
parent 36e3d46d35
commit becec0001c
2 changed files with 20 additions and 10 deletions

View File

@ -12,17 +12,8 @@ Gem::Specification.new do |s|
s.licenses = ["Ruby", "bsd-2-clause"]
s.require_paths = %w[lib]
s.extensions = %w[ext/bigdecimal/extconf.rb]
s.files = %w[
bigdecimal.gemspec
ext/bigdecimal/bigdecimal.c
ext/bigdecimal/bigdecimal.h
ext/bigdecimal/bits.h
ext/bigdecimal/feature.h
ext/bigdecimal/missing.c
ext/bigdecimal/missing.h
ext/bigdecimal/missing/dtoa.c
ext/bigdecimal/static_assert.h
lib/bigdecimal.rb
lib/bigdecimal/jacobian.rb
lib/bigdecimal/ludcmp.rb
@ -33,6 +24,21 @@ Gem::Specification.new do |s|
sample/nlsolve.rb
sample/pi.rb
]
if Gem::Platform === s.platform and s.platform =~ 'java' or RUBY_ENGINE == 'jruby'
s.platform = 'java'
else
s.extensions = %w[ext/bigdecimal/extconf.rb]
s.files += %w[
ext/bigdecimal/bigdecimal.c
ext/bigdecimal/bigdecimal.h
ext/bigdecimal/bits.h
ext/bigdecimal/feature.h
ext/bigdecimal/missing.c
ext/bigdecimal/missing.h
ext/bigdecimal/missing/dtoa.c
ext/bigdecimal/static_assert.h
]
end
s.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
end

View File

@ -1 +1,5 @@
require 'bigdecimal.so'
if RUBY_ENGINE == 'jruby'
JRuby::Util.load_ext("org.jruby.ext.bigdecimal.BigDecimalLibrary")
else
require 'bigdecimal.so'
end