FindRuby
Finds Ruby installation and the locations of its include files and libraries:
find_package(Ruby [<version>] [COMPONENTS <components>...] [...])
Ruby is a general-purpose programming language. This module supports Ruby 2.0 through 4.0. Virtual environments, such as RVM or RBENV, are also supported.
Components
Added in version 4.3.
This module supports the following components:
-
Interpreter -
The Ruby interpreter executable.
-
Development -
Headers and libraries needed to build Ruby extensions or embed Ruby.
If no components are specified, both Interpreter and Development are searched for.
Imported Targets
Added in version 4.3.
This module defines the following IMPORTED targets:
-
Ruby::Interpreter -
Ruby interpreter. Target defined if component
Interpreteris found. -
Ruby::Ruby -
Ruby library for embedding Ruby in C/C++ applications. Target defined if component
Developmentis found. -
Ruby::Module -
Ruby library for building Ruby extension modules. Target defined if component
Developmentis found. Use this target when creating native extensions that will be loaded into Ruby viarequire. On most platforms, extension modules do not link directly to libruby. Includes appropriate symbol visibility settings.
Result Variables
This module defines the following variables:
-
Ruby_FOUND -
Added in version 3.3.
Boolean indicating whether (the requested version of) ruby was found.
-
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.
-
Ruby_EXECUTABLE -
The 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.
Changed in version 3.18: Previous versions of CMake used the RUBY_ prefix for all variables.
Hints
This module accepts the following variables:
-
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_HOMEenvironment is defined. -
rbenv -
Requires that
rbenvis installed in~/.rbenv/binor that theRBENV_ROOTenvironment variable is defined.
-
Deprecated Variables
The following variables are provided for backward compatibility:
Deprecated since version 4.0: The following variables are deprecated. See policy CMP0185.
-
RUBY_FOUND -
Same as
Ruby_FOUND. -
RUBY_VERSION -
Same as
Ruby_VERSION. -
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.
Examples
Finding Ruby and specifying the minimum required version:
find_package(Ruby 3.2.6 EXACT REQUIRED) # or find_package(Ruby 3.2)
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/module/FindRuby.html