FindRuby

This module determines if Ruby is installed and finds the locations of its include files and libraries. Ruby 1.8 through 3.4 are supported.

The minimum required version of Ruby can be specified using the standard syntax, e.g.

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

Virtual environments, such as RVM or RBENV, are supported.

Result Variables

This module will set the following variables in your project:

Ruby_FOUND

set to true if ruby was found successfully

Ruby_EXECUTABLE

full path to the ruby binary

Ruby_INCLUDE_DIRS

include dirs to be used when using the ruby library

Ruby_LIBRARIES

Added in version 3.18: libraries needed to use ruby from C.

Ruby_VERSION

the version of ruby which was found, e.g. "3.2.6"

Ruby_VERSION_MAJOR

Ruby major version.

Ruby_VERSION_MINOR

Ruby minor version.

Ruby_VERSION_PATCH

Ruby patch version.

Changed in version 3.18: Previous versions of CMake used the RUBY_ prefix for all variables.

Deprecated since version 4.0: The following variables are deprecated. See policy CMP0185.

RUBY_EXECUTABLE

same as Ruby_EXECUTABLE.

RUBY_INCLUDE_DIRS

same as Ruby_INCLUDE_DIRS.

RUBY_INCLUDE_PATH

same as Ruby_INCLUDE_DIRS.

RUBY_LIBRARY

same as Ruby_LIBRARY.

RUBY_VERSION

same as Ruby_VERSION.

RUBY_FOUND

same as Ruby_FOUND.

Hints

Ruby_FIND_VIRTUALENV

Added in version 3.18.

This variable defines the handling of virtual environments. It can be left empty or be set to one of the following values:

  • FIRST: Virtual Ruby environments are searched for first,

    then the system Ruby installation. This is the default.

  • ONLY: Only virtual environments are searched

  • STANDARD: Only the system Ruby installation is searched.

Virtual environments may be provided by:

rvm

Requires that the MY_RUBY_HOME environment environment is defined.

rbenv

Requires that rbenv is installed in ~/.rbenv/bin or that the RBENV_ROOT environment variable is defined.