FindRuby

此模块用于确定 Ruby 是否已安装,并查找其包含文件和库的位置。支持 Ruby 1.8 至 3.4。

可以使用标准语法指定 Ruby 的最低要求版本,例如:

find_package(Ruby 3.2.6 EXACT REQUIRED)
# OR
find_package(Ruby 3.2)

支持 RVM 或 RBENV 等虚拟环境。

结果变量

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

Ruby_FOUND

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

Ruby_EXECUTABLE

Ruby 可执行文件的完整路径。

Ruby_INCLUDE_DIRS

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

Ruby_LIBRARIES

3.18 版本新增:从 C 使用 Ruby 所需的库。

Ruby_VERSION

找到的 Ruby 版本,例如“3.2.6”。

Ruby_VERSION_MAJOR

Ruby 主版本号。

Ruby_VERSION_MINOR

Ruby 次版本号。

Ruby_VERSION_PATCH

Ruby 修补版本号。

3.18 版本更改:CMake 的早期版本对所有变量都使用 `RUBY_` 前缀。

4.0 版本已弃用:以下变量已弃用。请参阅策略 CMP0185

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` 相同。

提示

Ruby_FIND_VIRTUALENV

在 3.18 版本中新增。

此变量定义了如何处理虚拟环境。它可以为空,或者设置为以下值之一:

  • `FIRST`:首先搜索虚拟 Ruby 环境,

    然后是系统 Ruby 安装。这是默认值。

  • `ONLY`:仅搜索虚拟环境。

  • `STANDARD`:仅搜索系统 Ruby 安装。

虚拟环境可能由以下提供:

rvm

要求定义 `MY_RUBY_HOME` 环境变量。

rbenv

要求 `rbenv` 安装在 `~/.rbenv/bin` 中,或者定义了 `RBENV_ROOT` 环境变量。