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 环境变量。