Преглед на файлове

Merge topic 'FindRuby-3.3' into release-3.29

c2bf3e46fa FindRuby: Fix finding Ruby 3.1+ on Windows
867550db43 FindRuby: Add support for 3.3

Acked-by: Kitware Robot <[email protected]>
Merge-request: !9309
Brad King преди 1 година
родител
ревизия
dd8e84a8fa
променени са 1 файла, в които са добавени 15 реда и са изтрити 12 реда
  1. 15 12
      Modules/FindRuby.cmake

+ 15 - 12
Modules/FindRuby.cmake

@@ -8,7 +8,7 @@ FindRuby
 Find Ruby
 Find Ruby
 
 
 This module finds if Ruby is installed and determines where the
 This module finds if Ruby is installed and determines where the
-include files and libraries are.  Ruby 1.8 through 3.2 are
+include files and libraries are.  Ruby 1.8 through 3.3 are
 supported.
 supported.
 
 
 The minimum required version of Ruby can be specified using the
 The minimum required version of Ruby can be specified using the
@@ -136,13 +136,13 @@ set(Ruby_FIND_VERSION_SHORT_NODOT "${Ruby_FIND_VERSION_MAJOR}${Ruby_FIND_VERSION
 
 
 # Set name of possible executables, ignoring the minor
 # Set name of possible executables, ignoring the minor
 # Eg:
 # Eg:
-# 2.1.1 => from ruby32 to ruby21 included
-# 2.1   => from ruby32 to ruby21 included
-# 2     => from ruby32 to ruby20 included
-# empty => from ruby32 to ruby18 included
+# 2.1.1 => from ruby33 to ruby21 included
+# 2.1   => from ruby33 to ruby21 included
+# 2     => from ruby33 to ruby20 included
+# empty => from ruby33 to ruby18 included
 if(NOT Ruby_FIND_VERSION_EXACT)
 if(NOT Ruby_FIND_VERSION_EXACT)
 
 
-  foreach(_ruby_version RANGE 32 18 -1)
+  foreach(_ruby_version RANGE 33 18 -1)
     string(SUBSTRING "${_ruby_version}" 0 1 _ruby_major_version)
     string(SUBSTRING "${_ruby_version}" 0 1 _ruby_major_version)
     string(SUBSTRING "${_ruby_version}" 1 1 _ruby_minor_version)
     string(SUBSTRING "${_ruby_version}" 1 1 _ruby_minor_version)
 
 
@@ -417,7 +417,7 @@ endif()
 set(_Ruby_POSSIBLE_LIB_NAMES ruby ruby-static ruby${_Ruby_VERSION_SHORT} ruby${_Ruby_VERSION_SHORT_NODOT} ruby${_Ruby_NODOT_VERSION} ruby-${_Ruby_VERSION_SHORT} ruby-${Ruby_VERSION})
 set(_Ruby_POSSIBLE_LIB_NAMES ruby ruby-static ruby${_Ruby_VERSION_SHORT} ruby${_Ruby_VERSION_SHORT_NODOT} ruby${_Ruby_NODOT_VERSION} ruby-${_Ruby_VERSION_SHORT} ruby-${Ruby_VERSION})
 
 
 if(WIN32)
 if(WIN32)
-  set(_Ruby_POSSIBLE_MSVC_RUNTIMES "msvcrt;vcruntime140;vcruntime140_1")
+  set(_Ruby_POSSIBLE_MSVC_RUNTIMES "ucrt;msvcrt;vcruntime140;vcruntime140_1")
   if(MSVC_TOOLSET_VERSION)
   if(MSVC_TOOLSET_VERSION)
     list(APPEND _Ruby_POSSIBLE_MSVC_RUNTIMES "msvcr${MSVC_TOOLSET_VERSION}")
     list(APPEND _Ruby_POSSIBLE_MSVC_RUNTIMES "msvcr${MSVC_TOOLSET_VERSION}")
   else()
   else()
@@ -426,16 +426,19 @@ if(WIN32)
 
 
   set(_Ruby_POSSIBLE_VERSION_SUFFICES "${_Ruby_NODOT_VERSION};${_Ruby_NODOT_VERSION_ZERO_PATCH}")
   set(_Ruby_POSSIBLE_VERSION_SUFFICES "${_Ruby_NODOT_VERSION};${_Ruby_NODOT_VERSION_ZERO_PATCH}")
 
 
-  set(_Ruby_ARCH_PREFIX "")
   if(CMAKE_SIZEOF_VOID_P EQUAL 8)
   if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-    set(_Ruby_ARCH_PREFIX "x64-")
+    set(_Ruby_POSSIBLE_ARCH_PREFIXS "libx64-;x64-")
+  else()
+    set(_Ruby_POSSIBLE_ARCH_PREFIXS "lib")
   endif()
   endif()
 
 
   foreach(_Ruby_MSVC_RUNTIME ${_Ruby_POSSIBLE_MSVC_RUNTIMES})
   foreach(_Ruby_MSVC_RUNTIME ${_Ruby_POSSIBLE_MSVC_RUNTIMES})
     foreach(_Ruby_VERSION_SUFFIX ${_Ruby_POSSIBLE_VERSION_SUFFICES})
     foreach(_Ruby_VERSION_SUFFIX ${_Ruby_POSSIBLE_VERSION_SUFFICES})
-      list(APPEND _Ruby_POSSIBLE_LIB_NAMES
-                 "${_Ruby_ARCH_PREFIX}${_Ruby_MSVC_RUNTIME}-ruby${_Ruby_VERSION_SUFFIX}"
-                 "${_Ruby_ARCH_PREFIX}${_Ruby_MSVC_RUNTIME}-ruby${_Ruby_VERSION_SUFFIX}-static")
+      foreach(_Ruby_ARCH_PREFIX ${_Ruby_POSSIBLE_ARCH_PREFIXS})
+        list(APPEND _Ruby_POSSIBLE_LIB_NAMES
+                   "${_Ruby_ARCH_PREFIX}${_Ruby_MSVC_RUNTIME}-ruby${_Ruby_VERSION_SUFFIX}"
+                   "${_Ruby_ARCH_PREFIX}${_Ruby_MSVC_RUNTIME}-ruby${_Ruby_VERSION_SUFFIX}-static")
+      endforeach()
     endforeach()
     endforeach()
   endforeach()
   endforeach()
 endif()
 endif()