qt-build-tools/6.5.1/_tools/cmake/share/cmake-3.27/Modules/FindRuby.cmake

513 lines
18 KiB
CMake
Raw Normal View History

# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#[=======================================================================[.rst:
FindRuby
--------
Find Ruby
This module finds if Ruby is installed and determines where the
2023-11-01 08:44:24 +08:00
include files and libraries are. Ruby 1.8 through 3.1 are
supported.
The minimum required version of Ruby can be specified using the
standard syntax, e.g.
.. code-block:: cmake
find_package(Ruby 2.5.1 EXACT REQUIRED)
# OR
find_package(Ruby 2.4)
It also determines what the name of the library is.
Virtual environments such as RVM are handled as well, by passing
the argument ``Ruby_FIND_VIRTUALENV``
Result Variables
^^^^^^^^^^^^^^^^
This module will set the following variables in your project:
``Ruby_FOUND``
set to true if ruby was found successfully
``Ruby_EXECUTABLE``
full path to the ruby binary
``Ruby_INCLUDE_DIRS``
include dirs to be used when using the ruby library
``Ruby_LIBRARIES``
2023-11-01 08:44:24 +08:00
.. versionadded:: 3.18
libraries needed to use ruby from C.
``Ruby_VERSION``
the version of ruby which was found, e.g. "1.8.7"
``Ruby_VERSION_MAJOR``
Ruby major version.
``Ruby_VERSION_MINOR``
Ruby minor version.
``Ruby_VERSION_PATCH``
Ruby patch version.
2023-11-01 08:44:24 +08:00
.. versionchanged:: 3.18
Previous versions of CMake used the ``RUBY_`` prefix for all variables.
The following variables are provided for compatibility reasons,
don't use them in new code:
``RUBY_EXECUTABLE``
same as Ruby_EXECUTABLE.
``RUBY_INCLUDE_DIRS``
same as Ruby_INCLUDE_DIRS.
``RUBY_INCLUDE_PATH``
same as Ruby_INCLUDE_DIRS.
``RUBY_LIBRARY``
same as Ruby_LIBRARY.
``RUBY_VERSION``
same as Ruby_VERSION.
``RUBY_FOUND``
same as Ruby_FOUND.
Hints
^^^^^
2023-11-01 08:44:24 +08:00
.. versionadded:: 3.18
``Ruby_FIND_VIRTUALENV``
This variable defines the handling of virtual environments managed by
``rvm``. It is meaningful only when a virtual environment
is active (i.e. the ``rvm`` script has been evaluated or at least the
``MY_RUBY_HOME`` environment variable is set).
The ``Ruby_FIND_VIRTUALENV`` variable can be set to empty or
one of the following:
* ``FIRST``: The virtual environment is used before any other standard
paths to look-up for the interpreter. This is the default.
* ``ONLY``: Only the virtual environment is used to look-up for the
interpreter.
* ``STANDARD``: The virtual environment is not used to look-up for the
interpreter (assuming it isn't still in the PATH...)
#]=======================================================================]
# Backwards compatibility
# Define camel case versions of input variables
foreach(UPPER
RUBY_EXECUTABLE
RUBY_LIBRARY
RUBY_INCLUDE_DIR
RUBY_CONFIG_INCLUDE_DIR
)
if (DEFINED ${UPPER})
string(REPLACE "RUBY_" "Ruby_" Camel ${UPPER})
if (NOT DEFINED ${Camel})
set(${Camel} ${${UPPER}})
endif()
endif()
endforeach()
# Ruby_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"archdir"@:>@)'`
# Ruby_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'`
# Ruby_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'`
# Ruby_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
# Ruby_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
# uncomment the following line to get debug output for this file
# set(_Ruby_DEBUG_OUTPUT TRUE)
# Determine the list of possible names of the ruby executable depending
# on which version of ruby is required
set(_Ruby_POSSIBLE_EXECUTABLE_NAMES ruby)
# If not specified, allow everything as far back as 1.8.0
if(NOT DEFINED Ruby_FIND_VERSION_MAJOR)
set(Ruby_FIND_VERSION "1.8.0")
set(Ruby_FIND_VERSION_MAJOR 1)
set(Ruby_FIND_VERSION_MINOR 8)
set(Ruby_FIND_VERSION_PATCH 0)
endif()
if(_Ruby_DEBUG_OUTPUT)
message("Ruby_FIND_VERSION=${Ruby_FIND_VERSION}")
message("Ruby_FIND_VERSION_MAJOR=${Ruby_FIND_VERSION_MAJOR}")
message("Ruby_FIND_VERSION_MINOR=${Ruby_FIND_VERSION_MINOR}")
message("Ruby_FIND_VERSION_PATCH=${Ruby_FIND_VERSION_PATCH}")
endif()
set(Ruby_FIND_VERSION_SHORT_NODOT "${Ruby_FIND_VERSION_MAJOR}${Ruby_FIND_VERSION_MINOR}")
# Set name of possible executables, ignoring the minor
# Eg:
2023-11-01 08:44:24 +08:00
# 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)
2023-11-01 08:44:24 +08:00
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)
if(NOT "${_ruby_major_version}${_ruby_minor_version}" VERSION_LESS ${Ruby_FIND_VERSION_SHORT_NODOT})
# Append both rubyX.Y and rubyXY (eg: ruby2.7 ruby27)
list(APPEND _Ruby_POSSIBLE_EXECUTABLE_NAMES ruby${_ruby_major_version}.${_ruby_minor_version} ruby${_ruby_major_version}${_ruby_minor_version})
else()
break()
endif()
endforeach()
list(REMOVE_DUPLICATES _Ruby_POSSIBLE_EXECUTABLE_NAMES)
endif()
# virtual environments handling (eg RVM)
if (DEFINED ENV{MY_RUBY_HOME})
if(_Ruby_DEBUG_OUTPUT)
message("My ruby home is defined: $ENV{MY_RUBY_HOME}")
endif()
if (DEFINED Ruby_FIND_VIRTUALENV)
if (NOT Ruby_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY|STANDARD)$")
message (AUTHOR_WARNING "FindRuby: ${Ruby_FIND_VIRTUALENV}: invalid value for 'Ruby_FIND_VIRTUALENV'. 'FIRST', 'ONLY' or 'STANDARD' expected. 'FIRST' will be used instead.")
set (_Ruby_FIND_VIRTUALENV "FIRST")
else()
set (_Ruby_FIND_VIRTUALENV ${Ruby_FIND_VIRTUALENV})
endif()
else()
set (_Ruby_FIND_VIRTUALENV FIRST)
endif()
else()
if (DEFINED Ruby_FIND_VIRTUALENV)
message("Environment variable MY_RUBY_HOME isn't set, defaulting back to Ruby_FIND_VIRTUALENV=STANDARD")
endif()
set (_Ruby_FIND_VIRTUALENV STANDARD)
endif()
if(_Ruby_DEBUG_OUTPUT)
message("_Ruby_POSSIBLE_EXECUTABLE_NAMES=${_Ruby_POSSIBLE_EXECUTABLE_NAMES}")
message("_Ruby_FIND_VIRTUALENV=${_Ruby_FIND_VIRTUALENV}")
endif()
function (_RUBY_VALIDATE_INTERPRETER)
if (NOT Ruby_EXECUTABLE)
return()
endif()
cmake_parse_arguments (PARSE_ARGV 0 _RVI "EXACT;CHECK_EXISTS" "" "")
if (_RVI_UNPARSED_ARGUMENTS)
set (expected_version ${_RVI_UNPARSED_ARGUMENTS})
else()
unset (expected_version)
endif()
if (_RVI_CHECK_EXISTS AND NOT EXISTS "${Ruby_EXECUTABLE}")
# interpreter does not exist anymore
set (_Ruby_Interpreter_REASON_FAILURE "Cannot find the interpreter \"${Ruby_EXECUTABLE}\"")
set_property (CACHE Ruby_EXECUTABLE PROPERTY VALUE "Ruby_EXECUTABLE-NOTFOUND")
return()
endif()
# Check the version it returns
# executable found must have a specific version
execute_process (COMMAND "${Ruby_EXECUTABLE}" -e "puts RUBY_VERSION"
RESULT_VARIABLE result
OUTPUT_VARIABLE version
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
if (result OR (_RVI_EXACT AND NOT version VERSION_EQUAL expected_version) OR (version VERSION_LESS expected_version))
# interpreter not usable or has wrong major version
if (result)
set (_Ruby_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${Ruby_EXECUTABLE}\"")
else()
set (_Ruby_Interpreter_REASON_FAILURE "Wrong major version for the interpreter \"${Ruby_EXECUTABLE}\"")
endif()
set_property (CACHE Ruby_EXECUTABLE PROPERTY VALUE "Ruby_EXECUTABLE-NOTFOUND")
return()
endif()
endfunction()
while(1)
# Virtual environments handling
if(_Ruby_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
if(_Ruby_DEBUG_OUTPUT)
message("Inside Matches")
endif()
find_program (Ruby_EXECUTABLE
NAMES ${_Ruby_POSSIBLE_EXECUTABLE_NAMES}
NAMES_PER_DIR
PATHS ENV MY_RUBY_HOME
PATH_SUFFIXES bin Scripts
NO_CMAKE_PATH
NO_CMAKE_ENVIRONMENT_PATH
NO_SYSTEM_ENVIRONMENT_PATH
NO_CMAKE_SYSTEM_PATH)
if(_Ruby_DEBUG_OUTPUT)
message("Ruby_EXECUTABLE=${Ruby_EXECUTABLE}")
endif()
_RUBY_VALIDATE_INTERPRETER (${Ruby_FIND_VERSION}})
if(Ruby_EXECUTABLE)
break()
endif()
if(NOT _Ruby_FIND_VIRTUALENV STREQUAL "ONLY")
break()
endif()
elseif(_Ruby_DEBUG_OUTPUT)
message("_Ruby_FIND_VIRTUALENV doesn't match: ${_Ruby_FIND_VIRTUALENV}")
endif()
# try using standard paths
find_program (Ruby_EXECUTABLE
NAMES ${_Ruby_POSSIBLE_EXECUTABLE_NAMES}
NAMES_PER_DIR)
_RUBY_VALIDATE_INTERPRETER (${Ruby_FIND_VERSION})
if (Ruby_EXECUTABLE)
break()
2023-11-01 08:44:24 +08:00
else()
# Remove first entry from names list.
LIST(REMOVE_AT _Ruby_POSSIBLE_EXECUTABLE_NAMES 0)
# If the list is now empty, abort.
if (NOT _Ruby_POSSIBLE_EXECUTABLE_NAMES)
break()
else()
# Otherwise, continue with the remaining list. Make sure that we clear
# the cached variable.
unset(Ruby_EXECUTABLE CACHE)
endif()
endif()
endwhile()
if(Ruby_EXECUTABLE AND NOT Ruby_VERSION_MAJOR)
function(_RUBY_CONFIG_VAR RBVAR OUTVAR)
execute_process(COMMAND ${Ruby_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['${RBVAR}']"
RESULT_VARIABLE _Ruby_SUCCESS
OUTPUT_VARIABLE _Ruby_OUTPUT
ERROR_QUIET)
if(_Ruby_SUCCESS OR _Ruby_OUTPUT STREQUAL "")
execute_process(COMMAND ${Ruby_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['${RBVAR}']"
RESULT_VARIABLE _Ruby_SUCCESS
OUTPUT_VARIABLE _Ruby_OUTPUT
ERROR_QUIET)
endif()
set(${OUTVAR} "${_Ruby_OUTPUT}" PARENT_SCOPE)
endfunction()
# query the ruby version
_RUBY_CONFIG_VAR("MAJOR" Ruby_VERSION_MAJOR)
_RUBY_CONFIG_VAR("MINOR" Ruby_VERSION_MINOR)
_RUBY_CONFIG_VAR("TEENY" Ruby_VERSION_PATCH)
# query the different directories
_RUBY_CONFIG_VAR("archdir" Ruby_ARCH_DIR)
_RUBY_CONFIG_VAR("arch" Ruby_ARCH)
_RUBY_CONFIG_VAR("rubyhdrdir" Ruby_HDR_DIR)
_RUBY_CONFIG_VAR("rubyarchhdrdir" Ruby_ARCHHDR_DIR)
_RUBY_CONFIG_VAR("libdir" Ruby_POSSIBLE_LIB_DIR)
_RUBY_CONFIG_VAR("rubylibdir" Ruby_RUBY_LIB_DIR)
# site_ruby
_RUBY_CONFIG_VAR("sitearchdir" Ruby_SITEARCH_DIR)
_RUBY_CONFIG_VAR("sitelibdir" Ruby_SITELIB_DIR)
# vendor_ruby available ?
execute_process(COMMAND ${Ruby_EXECUTABLE} -r vendor-specific -e "print 'true'"
OUTPUT_VARIABLE Ruby_HAS_VENDOR_RUBY ERROR_QUIET)
if(Ruby_HAS_VENDOR_RUBY)
_RUBY_CONFIG_VAR("vendorlibdir" Ruby_VENDORLIB_DIR)
_RUBY_CONFIG_VAR("vendorarchdir" Ruby_VENDORARCH_DIR)
endif()
# save the results in the cache so we don't have to run ruby the next time again
set(Ruby_VERSION_MAJOR ${Ruby_VERSION_MAJOR} CACHE PATH "The Ruby major version" FORCE)
set(Ruby_VERSION_MINOR ${Ruby_VERSION_MINOR} CACHE PATH "The Ruby minor version" FORCE)
set(Ruby_VERSION_PATCH ${Ruby_VERSION_PATCH} CACHE PATH "The Ruby patch version" FORCE)
set(Ruby_ARCH_DIR ${Ruby_ARCH_DIR} CACHE PATH "The Ruby arch dir" FORCE)
set(Ruby_HDR_DIR ${Ruby_HDR_DIR} CACHE PATH "The Ruby header dir (1.9+)" FORCE)
set(Ruby_ARCHHDR_DIR ${Ruby_ARCHHDR_DIR} CACHE PATH "The Ruby arch header dir (2.0+)" FORCE)
set(Ruby_POSSIBLE_LIB_DIR ${Ruby_POSSIBLE_LIB_DIR} CACHE PATH "The Ruby lib dir" FORCE)
set(Ruby_RUBY_LIB_DIR ${Ruby_RUBY_LIB_DIR} CACHE PATH "The Ruby ruby-lib dir" FORCE)
set(Ruby_SITEARCH_DIR ${Ruby_SITEARCH_DIR} CACHE PATH "The Ruby site arch dir" FORCE)
set(Ruby_SITELIB_DIR ${Ruby_SITELIB_DIR} CACHE PATH "The Ruby site lib dir" FORCE)
set(Ruby_HAS_VENDOR_RUBY ${Ruby_HAS_VENDOR_RUBY} CACHE BOOL "Vendor Ruby is available" FORCE)
set(Ruby_VENDORARCH_DIR ${Ruby_VENDORARCH_DIR} CACHE PATH "The Ruby vendor arch dir" FORCE)
set(Ruby_VENDORLIB_DIR ${Ruby_VENDORLIB_DIR} CACHE PATH "The Ruby vendor lib dir" FORCE)
mark_as_advanced(
Ruby_ARCH_DIR
Ruby_ARCH
Ruby_HDR_DIR
Ruby_ARCHHDR_DIR
Ruby_POSSIBLE_LIB_DIR
Ruby_RUBY_LIB_DIR
Ruby_SITEARCH_DIR
Ruby_SITELIB_DIR
Ruby_HAS_VENDOR_RUBY
Ruby_VENDORARCH_DIR
Ruby_VENDORLIB_DIR
Ruby_VERSION_MAJOR
Ruby_VERSION_MINOR
Ruby_VERSION_PATCH
)
endif()
# In case Ruby_EXECUTABLE could not be executed (e.g. cross compiling)
# try to detect which version we found. This is not too good.
if(Ruby_EXECUTABLE AND NOT Ruby_VERSION_MAJOR)
# by default assume 1.8.0
set(Ruby_VERSION_MAJOR 1)
set(Ruby_VERSION_MINOR 8)
set(Ruby_VERSION_PATCH 0)
# check whether we found 1.9.x
if(${Ruby_EXECUTABLE} MATCHES "ruby1\\.?9")
set(Ruby_VERSION_MAJOR 1)
set(Ruby_VERSION_MINOR 9)
endif()
2023-11-01 08:44:24 +08:00
# check whether we found 2.[0-7].x
if(${Ruby_EXECUTABLE} MATCHES "ruby2")
set(Ruby_VERSION_MAJOR 2)
2023-11-01 08:44:24 +08:00
string(REGEX_REPLACE ${Ruby_EXECUTABLE} "ruby2\\.?([0-7])" "\\1" Ruby_VERSION_MINOR)
endif()
2023-11-01 08:44:24 +08:00
# check whether we found 3.[0-1].x
if(${Ruby_EXECUTABLE} MATCHES "ruby3")
set(Ruby_VERSION_MAJOR 3)
string(REGEX_REPLACE ${Ruby_EXECUTABLE} "ruby3\\.?([0-1])" "\\1" Ruby_VERSION_MINOR)
endif()
2023-11-01 08:44:24 +08:00
endif()
if(Ruby_VERSION_MAJOR)
set(Ruby_VERSION "${Ruby_VERSION_MAJOR}.${Ruby_VERSION_MINOR}.${Ruby_VERSION_PATCH}")
set(_Ruby_VERSION_SHORT "${Ruby_VERSION_MAJOR}.${Ruby_VERSION_MINOR}")
set(_Ruby_VERSION_SHORT_NODOT "${Ruby_VERSION_MAJOR}${Ruby_VERSION_MINOR}")
set(_Ruby_NODOT_VERSION "${Ruby_VERSION_MAJOR}${Ruby_VERSION_MINOR}${Ruby_VERSION_PATCH}")
2023-11-01 08:44:24 +08:00
set(_Ruby_NODOT_VERSION_ZERO_PATCH "${Ruby_VERSION_MAJOR}${Ruby_VERSION_MINOR}0")
endif()
# FIXME: Currently we require both the interpreter and development components to be found
# in order to use either. See issue #20474.
find_path(Ruby_INCLUDE_DIR
NAMES ruby.h
HINTS
${Ruby_HDR_DIR}
${Ruby_ARCH_DIR}
/usr/lib/ruby/${_Ruby_VERSION_SHORT}/i586-linux-gnu/
)
set(Ruby_INCLUDE_DIRS ${Ruby_INCLUDE_DIR})
# if ruby > 1.8 is required or if ruby > 1.8 was found, search for the config.h dir
if( Ruby_FIND_VERSION VERSION_GREATER_EQUAL "1.9" OR Ruby_VERSION VERSION_GREATER_EQUAL "1.9" OR Ruby_HDR_DIR)
find_path(Ruby_CONFIG_INCLUDE_DIR
NAMES ruby/config.h config.h
HINTS
${Ruby_HDR_DIR}/${Ruby_ARCH}
${Ruby_ARCH_DIR}
${Ruby_ARCHHDR_DIR}
)
set(Ruby_INCLUDE_DIRS ${Ruby_INCLUDE_DIRS} ${Ruby_CONFIG_INCLUDE_DIR} )
endif()
# Determine the list of possible names for the ruby library
2023-11-01 08:44:24 +08:00
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)
2023-11-01 08:44:24 +08:00
set(_Ruby_POSSIBLE_MSVC_RUNTIMES "msvcrt;vcruntime140;vcruntime140_1")
if(MSVC_TOOLSET_VERSION)
2023-11-01 08:44:24 +08:00
list(APPEND _Ruby_POSSIBLE_MSVC_RUNTIMES "msvcr${MSVC_TOOLSET_VERSION}")
else()
2023-11-01 08:44:24 +08:00
list(APPEND _Ruby_POSSIBLE_MSVC_RUNTIMES "msvcr")
endif()
2023-11-01 08:44:24 +08:00
set(_Ruby_POSSIBLE_VERSION_SUFFICES "${_Ruby_NODOT_VERSION};${_Ruby_NODOT_VERSION_ZERO_PATCH}")
set(_Ruby_ARCH_PREFIX "")
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_Ruby_ARCH_PREFIX "x64-")
endif()
2023-11-01 08:44:24 +08:00
foreach(_Ruby_MSVC_RUNTIME ${_Ruby_POSSIBLE_MSVC_RUNTIMES})
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")
endforeach()
endforeach()
endif()
find_library(Ruby_LIBRARY NAMES ${_Ruby_POSSIBLE_LIB_NAMES} HINTS ${Ruby_POSSIBLE_LIB_DIR} )
set(_Ruby_REQUIRED_VARS Ruby_EXECUTABLE Ruby_INCLUDE_DIR Ruby_LIBRARY)
if(_Ruby_VERSION_SHORT_NODOT GREATER 18)
list(APPEND _Ruby_REQUIRED_VARS Ruby_CONFIG_INCLUDE_DIR)
endif()
if(_Ruby_DEBUG_OUTPUT)
message(STATUS "--------FindRuby.cmake debug------------")
message(STATUS "_Ruby_POSSIBLE_EXECUTABLE_NAMES: ${_Ruby_POSSIBLE_EXECUTABLE_NAMES}")
message(STATUS "_Ruby_POSSIBLE_LIB_NAMES: ${_Ruby_POSSIBLE_LIB_NAMES}")
message(STATUS "Ruby_ARCH_DIR: ${Ruby_ARCH_DIR}")
message(STATUS "Ruby_HDR_DIR: ${Ruby_HDR_DIR}")
message(STATUS "Ruby_POSSIBLE_LIB_DIR: ${Ruby_POSSIBLE_LIB_DIR}")
message(STATUS "Found Ruby_VERSION: \"${Ruby_VERSION}\" , short: \"${_Ruby_VERSION_SHORT}\", nodot: \"${_Ruby_VERSION_SHORT_NODOT}\"")
message(STATUS "_Ruby_REQUIRED_VARS: ${_Ruby_REQUIRED_VARS}")
message(STATUS "Ruby_EXECUTABLE: ${Ruby_EXECUTABLE}")
message(STATUS "Ruby_LIBRARY: ${Ruby_LIBRARY}")
message(STATUS "Ruby_INCLUDE_DIR: ${Ruby_INCLUDE_DIR}")
message(STATUS "Ruby_CONFIG_INCLUDE_DIR: ${Ruby_CONFIG_INCLUDE_DIR}")
message(STATUS "--------------------")
endif()
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Ruby REQUIRED_VARS ${_Ruby_REQUIRED_VARS}
VERSION_VAR Ruby_VERSION )
if(Ruby_FOUND)
set(Ruby_LIBRARIES ${Ruby_LIBRARY})
endif()
mark_as_advanced(
Ruby_EXECUTABLE
Ruby_LIBRARY
Ruby_INCLUDE_DIR
Ruby_CONFIG_INCLUDE_DIR
)
# Set some variables for compatibility with previous version of this file (no need to provide a CamelCase version of that...)
set(RUBY_POSSIBLE_LIB_PATH ${Ruby_POSSIBLE_LIB_DIR})
set(RUBY_RUBY_LIB_PATH ${Ruby_RUBY_LIB_DIR})
set(RUBY_INCLUDE_PATH ${Ruby_INCLUDE_DIRS})
# Backwards compatibility
# Define upper case versions of output variables
foreach(Camel
Ruby_EXECUTABLE
Ruby_INCLUDE_DIRS
Ruby_LIBRARY
Ruby_VERSION
Ruby_VERSION_MAJOR
Ruby_VERSION_MINOR
Ruby_VERSION_PATCH
Ruby_ARCH_DIR
Ruby_ARCH
Ruby_HDR_DIR
Ruby_ARCHHDR_DIR
Ruby_POSSIBLE_LIB_DIR
Ruby_RUBY_LIB_DIR
Ruby_SITEARCH_DIR
Ruby_SITELIB_DIR
Ruby_HAS_VENDOR_RUBY
Ruby_VENDORARCH_DIR
2023-11-01 08:44:24 +08:00
Ruby_VENDORLIB_DIR
)
string(TOUPPER ${Camel} UPPER)
set(${UPPER} ${${Camel}})
endforeach()