FindRuby: add support for versions up to 3.1.

This commit is contained in:
Mihai Moldovan
2022-01-31 05:51:36 +01:00
parent 4b033ca0eb
commit 42d99a248e

View File

@@ -8,7 +8,7 @@ FindRuby
Find Ruby
This module finds if Ruby is installed and determines where the
include files and libraries are. Ruby 1.8 through 2.7 are
include files and libraries are. Ruby 1.8 through 3.1 are
supported.
The minimum required version of Ruby can be specified using the
@@ -139,13 +139,13 @@ set(Ruby_FIND_VERSION_SHORT_NODOT "${Ruby_FIND_VERSION_MAJOR}${Ruby_FIND_VERSION
# Set name of possible executables, ignoring the minor
# Eg:
# 2.1.1 => from ruby27 to ruby21 included
# 2.1 => from ruby27 to ruby21 included
# 2 => from ruby26 to ruby20 included
# empty => from ruby27 to ruby18 included
# 2.1.1 => from ruby31 to ruby21 included
# 2.1 => from ruby31 to ruby21 included
# 2 => from ruby31 to ruby20 included
# empty => from ruby31 to ruby18 included
if(NOT Ruby_FIND_VERSION_EXACT)
foreach(_ruby_version RANGE 27 18 -1)
foreach(_ruby_version RANGE 31 18 -1)
string(SUBSTRING "${_ruby_version}" 0 1 _ruby_major_version)
string(SUBSTRING "${_ruby_version}" 1 1 _ruby_minor_version)
@@ -398,6 +398,16 @@ if(Ruby_EXECUTABLE AND NOT Ruby_VERSION_MAJOR)
set(Ruby_VERSION_MAJOR 2)
set(Ruby_VERSION_MINOR 7)
endif()
# check whether we found 3.0.x
if(${Ruby_EXECUTABLE} MATCHES "ruby3\\.?0")
set(Ruby_VERSION_MAJOR 3)
set(Ruby_VERSION_MINOR 0)
endif()
# check whether we found 3.1.x
if(${Ruby_EXECUTABLE} MATCHES "ruby3\\.?1")
set(Ruby_VERSION_MAJOR 3)
set(Ruby_VERSION_MINOR 1)
endif()
endif()
if(Ruby_VERSION_MAJOR)