FindRuby

查找 Ruby 安装及其头文件和库的位置

find_package(Ruby [<version>] [...])

Ruby 是一种通用编程语言。此模块支持 Ruby 1.8 到 3.4。也支持 RVM 或 RBENV 等虚拟环境。

结果变量

此模块定义了以下变量

Ruby_FOUND

3.3 版本中新增。

一个布尔值,指示是否找到了 (所请求版本的) ruby。

Ruby_VERSION

找到的 ruby 版本,例如 3.2.6

Ruby_VERSION_MAJOR

Ruby 主版本号。

Ruby_VERSION_MINOR

Ruby 次版本号。

Ruby_VERSION_PATCH

Ruby 修订版本号。

Ruby_EXECUTABLE

ruby 二进制文件的完整路径。

Ruby_INCLUDE_DIRS

在使用 ruby 库时要使用的包含目录。

Ruby_LIBRARIES

在 3.18 版本中新增。

从 C 使用 ruby 所需的库。

版本 3.18 中已更改: 之前的 CMake 版本对所有变量都使用 RUBY_ 前缀。

提示

此模块接受以下变量

Ruby_FIND_VIRTUALENV

在 3.18 版本中新增。

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

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

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

  • ONLY:只搜索虚拟环境

  • STANDARD:只搜索系统 Ruby 安装。

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

rvm

要求定义了 MY_RUBY_HOME 环境变量。

rbenv

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

已弃用变量

以下变量提供用于向后兼容性

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

RUBY_FOUND

Ruby_FOUND 相同。

RUBY_VERSION

Ruby_VERSION 相同。

RUBY_EXECUTABLE

Ruby_EXECUTABLE 相同。

RUBY_INCLUDE_DIRS

Ruby_INCLUDE_DIRS 相同。

RUBY_INCLUDE_PATH

Ruby_INCLUDE_DIRS 相同。

RUBY_LIBRARY

Ruby_LIBRARY 相同。

示例

查找 Ruby 并指定所需的最低版本

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