From becec0001c8eff1b763bed804e48a9ab71289fdd Mon Sep 17 00:00:00 2001 From: Charles Oliver Nutter Date: Wed, 8 Feb 2023 21:01:46 +0100 Subject: [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 --- ext/bigdecimal/bigdecimal.gemspec | 24 +++++++++++++++--------- ext/bigdecimal/lib/bigdecimal.rb | 6 +++++- 2 files changed, 20 insertions(+), 10 deletions(-) (limited to 'ext') diff --git a/ext/bigdecimal/bigdecimal.gemspec b/ext/bigdecimal/bigdecimal.gemspec index d215757188..b05b2b0891 100644 --- a/ext/bigdecimal/bigdecimal.gemspec +++ b/ext/bigdecimal/bigdecimal.gemspec @@ -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 diff --git a/ext/bigdecimal/lib/bigdecimal.rb b/ext/bigdecimal/lib/bigdecimal.rb index 8fd2587c84..82b3e1b7b9 100644 --- a/ext/bigdecimal/lib/bigdecimal.rb +++ b/ext/bigdecimal/lib/bigdecimal.rb @@ -1 +1,5 @@ -require 'bigdecimal.so' +if RUBY_ENGINE == 'jruby' + JRuby::Util.load_ext("org.jruby.ext.bigdecimal.BigDecimalLibrary") +else + require 'bigdecimal.so' +end -- cgit v1.2.1