FindRuby

查找 Ruby

此模块查找是否安装了 Ruby 并确定头文件和库的位置。支持 Ruby 1.8 至 3.3。

可以使用标准语法指定 Ruby 所需的最低版本,例如

find_package(Ruby 2.5.1 EXACT REQUIRED)
# OR
find_package(Ruby 2.4)

它还将确定库的名称。

通过传递参数 Ruby_FIND_VIRTUALENV 还能够处理诸如 RVM 等虚拟环境

结果变量

此模块将在您的项目中设置以下变量

Ruby_FOUND

如果成功找到 Ruby,则设置为 true

Ruby_EXECUTABLE

Ruby 二进制文件的完整路径

Ruby_INCLUDE_DIRS

在使用 Ruby 库时要使用的包含目录

Ruby_LIBRARIES

在版本 3.18 中添加: 从 C 使用 Ruby 所需的库。

Ruby_VERSION

已找到的 Ruby 版本,例如“1.8.7”

Ruby_VERSION_MAJOR

Ruby 主版本。

Ruby_VERSION_MINOR

Ruby 次要版本。

Ruby_VERSION_PATCH

Ruby 修补版本。

在版本 3.18 中更改: 以前版本的 CMake 使用所有变量的 RUBY_ 前缀。出于兼容性原因提供以下变量,请不要在新代码中使用它们

RUBY_EXECUTABLE

与 Ruby_EXECUTABLE 相同。

RUBY_INCLUDE_DIRS

与 Ruby_INCLUDE_DIRS 相同。

RUBY_INCLUDE_PATH

与 Ruby_INCLUDE_DIRS 相同。

RUBY_LIBRARY

与 Ruby_LIBRARY 相同。

RUBY_VERSION

与 Ruby_VERSION 相同。

RUBY_FOUND

与 Ruby_FOUND 相同。

提示

在版本 3.18 中添加。

Ruby_FIND_VIRTUALENV

此变量定义由 rvm 管理的虚拟环境的处理方式。仅当虚拟环境处于活动状态时才有意义(即,已评估 rvm 脚本或至少设置了 MY_RUBY_HOME 环境变量)。Ruby_FIND_VIRTUALENV 变量可以设置为空或以下值之一

  • FIRST:虚拟环境用于在其他任何标准路径之前查找解释器。这是默认值。

  • ONLY:仅使用虚拟环境查找解释器。

  • STANDARD:不使用虚拟环境查找解释器(假设它不在 PATH 中...)