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