ruby/ext/bigdecimal/bigdecimal.gemspec
Nobuyoshi Nakada d13879f862 [ruby/bigdecimal] Read version from bigdecimal.c
The dependency of extconf.h on bigdecimal.gemspec does not make sense
as far as no rule is defined for it.  Also, the relationship between
extension library and gemspec file is various in default gems, and
does not work well.

7f99b28552
2023-02-21 09:50:02 +00:00

54 lines
1.6 KiB
Ruby

# coding: utf-8
name = File.basename(__FILE__, '.*')
source_version = ["", "ext/#{name}/"].find do |dir|
begin
break File.foreach(File.join(__dir__, "#{dir}#{name}.c")) {|line|
break $1.sub("-", ".") if /^#define\s+#{name.upcase}_VERSION\s+"(.+)"/o =~ line
}
rescue Errno::ENOENT
end
end or raise "can't find #{name.upcase}_VERSION"
Gem::Specification.new do |s|
s.name = name
s.version = source_version
s.authors = ["Kenta Murata", "Zachary Scott", "Shigeo Kobayashi"]
s.email = ["mrkn@mrkn.jp"]
s.summary = "Arbitrary-precision decimal floating-point number library."
s.description = "This library provides arbitrary-precision decimal floating-point number class."
s.homepage = "https://github.com/ruby/bigdecimal"
s.licenses = ["Ruby", "BSD-2-Clause"]
s.require_paths = %w[lib]
s.files = %w[
bigdecimal.gemspec
lib/bigdecimal.rb
lib/bigdecimal/jacobian.rb
lib/bigdecimal/ludcmp.rb
lib/bigdecimal/math.rb
lib/bigdecimal/newton.rb
lib/bigdecimal/util.rb
sample/linear.rb
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