mirror of
https://github.com/ruby/ruby.git
synced 2025-08-23 21:14:23 +02:00
[ruby/io-wait] Make the gem a noop on Rubies older than 2.6
Ref: https://github.com/mikel/mail/pull/1439
Some gems depend on io-wait, but still support older rubies,
so they have to chose between droping support or not listing io-wait.
But io-wait could act a a noop on older rubies.
75fcb74c32
This commit is contained in:
parent
804dca7b0c
commit
ddb9d60f7d
2 changed files with 18 additions and 15 deletions
|
@ -1,20 +1,24 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: false
|
||||||
require 'mkmf'
|
require 'mkmf'
|
||||||
target = "io/wait"
|
|
||||||
|
|
||||||
have_func("rb_io_wait")
|
if RUBY_VERSION < "2.6"
|
||||||
unless macro_defined?("DOSISH", "#include <ruby.h>")
|
File.write("Makefile", dummy_makefile($srcdir).join(""))
|
||||||
have_header(ioctl_h = "sys/ioctl.h") or ioctl_h = nil
|
|
||||||
fionread = %w[sys/ioctl.h sys/filio.h sys/socket.h].find do |h|
|
|
||||||
have_macro("FIONREAD", [h, ioctl_h].compact)
|
|
||||||
end
|
|
||||||
if fionread
|
|
||||||
$defs << "-DFIONREAD_HEADER=\"<#{fionread}>\""
|
|
||||||
create_makefile(target)
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
if have_func("rb_w32_ioctlsocket", "ruby.h")
|
target = "io/wait"
|
||||||
have_func("rb_w32_is_socket", "ruby.h")
|
have_func("rb_io_wait")
|
||||||
create_makefile(target)
|
unless macro_defined?("DOSISH", "#include <ruby.h>")
|
||||||
|
have_header(ioctl_h = "sys/ioctl.h") or ioctl_h = nil
|
||||||
|
fionread = %w[sys/ioctl.h sys/filio.h sys/socket.h].find do |h|
|
||||||
|
have_macro("FIONREAD", [h, ioctl_h].compact)
|
||||||
|
end
|
||||||
|
if fionread
|
||||||
|
$defs << "-DFIONREAD_HEADER=\"<#{fionread}>\""
|
||||||
|
create_makefile(target)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if have_func("rb_w32_ioctlsocket", "ruby.h")
|
||||||
|
have_func("rb_w32_is_socket", "ruby.h")
|
||||||
|
create_makefile(target)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -10,7 +10,6 @@ Gem::Specification.new do |spec|
|
||||||
spec.description = %q{Waits until IO is readable or writable without blocking.}
|
spec.description = %q{Waits until IO is readable or writable without blocking.}
|
||||||
spec.homepage = "https://github.com/ruby/io-wait"
|
spec.homepage = "https://github.com/ruby/io-wait"
|
||||||
spec.licenses = ["Ruby", "BSD-2-Clause"]
|
spec.licenses = ["Ruby", "BSD-2-Clause"]
|
||||||
spec.required_ruby_version = Gem::Requirement.new(">= 2.6.0")
|
|
||||||
|
|
||||||
spec.metadata["homepage_uri"] = spec.homepage
|
spec.metadata["homepage_uri"] = spec.homepage
|
||||||
spec.metadata["source_code_uri"] = spec.homepage
|
spec.metadata["source_code_uri"] = spec.homepage
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue