mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
spec_helper.rb: must find libruby.so
* spec/ruby/optional/capi/spec_helper.rb (compile_extension): if libruby.so should have been built but is not found, fail early. get mtime of the library just once. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
42c6ef00af
commit
a1695d9c2c
1 changed files with 14 additions and 11 deletions
|
@ -24,18 +24,21 @@ def compile_extension(name)
|
||||||
lib = "#{object_path}/#{ext}.#{RbConfig::CONFIG['DLEXT']}"
|
lib = "#{object_path}/#{ext}.#{RbConfig::CONFIG['DLEXT']}"
|
||||||
ruby_header = "#{RbConfig::CONFIG['rubyhdrdir']}/ruby.h"
|
ruby_header = "#{RbConfig::CONFIG['rubyhdrdir']}/ruby.h"
|
||||||
libruby_so = RbConfig::CONFIG['LIBRUBY_SO']
|
libruby_so = RbConfig::CONFIG['LIBRUBY_SO']
|
||||||
ruby_library = "#{RbConfig::CONFIG['libdir']}/#{libruby_so}"
|
|
||||||
unless libruby_so and File.exist?(ruby_library)
|
|
||||||
# Statically-compiled lib in the binary, ignore this check
|
|
||||||
ruby_library = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
return lib if File.exist?(lib) and
|
begin
|
||||||
File.mtime(lib) > File.mtime("#{extension_path}/rubyspec.h") and
|
mtime = File.mtime(lib)
|
||||||
File.mtime(lib) > File.mtime("#{extension_path}/#{ext}.c") and
|
rescue Errno::ENOENT
|
||||||
File.mtime(lib) > File.mtime(ruby_header) and
|
# not found, then compile
|
||||||
(!ruby_library || File.mtime(lib) > File.mtime(ruby_library)) and
|
else
|
||||||
true # sentinel
|
case # if lib is older than headers, source or libruby, then recompile
|
||||||
|
when mtime <= File.mtime("#{extension_path}/rubyspec.h")
|
||||||
|
when mtime <= File.mtime("#{extension_path}/#{ext}.c")
|
||||||
|
when mtime <= File.mtime(ruby_header)
|
||||||
|
when libruby_so && mtime <= File.mtime("#{RbConfig::CONFIG['libdir']}/#{libruby_so}")
|
||||||
|
else
|
||||||
|
return lib # up-to-date
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Copy needed source files to tmpdir
|
# Copy needed source files to tmpdir
|
||||||
tmpdir = tmp("cext_#{name}")
|
tmpdir = tmp("cext_#{name}")
|
||||||
|
|
Loading…
Reference in a new issue