FindRuby

尋找 Ruby

這個模組會尋找是否已安裝 Ruby,並確定標頭檔和函式庫的位置。支援 Ruby 1.8 到 3.3 版本。

可以使用標準語法指定 Ruby 的最低要求版本,例如:

find_package(Ruby 2.5.1 EXACT REQUIRED)
# OR
find_package(Ruby 2.4)

它也會判斷函式庫的名稱。

透過傳遞參數 Ruby_FIND_VIRTUALENV,也可以處理如 RVM 之類的虛擬環境。

結果變數

此模組將在您的專案中設定以下變數:

Ruby_FOUND

如果成功找到 Ruby,則設定為 true

Ruby_EXECUTABLE

Ruby 二進制檔案的完整路徑

Ruby_INCLUDE_DIRS

使用 Ruby 函式庫時要使用的標頭檔目錄

Ruby_LIBRARIES

版本 3.18 新增: 從 C 語言使用 Ruby 所需的函式庫。

Ruby_VERSION

找到的 Ruby 版本,例如 "1.8.7"

Ruby_VERSION_MAJOR

Ruby 主版本號。

Ruby_VERSION_MINOR

Ruby 次版本號。

Ruby_VERSION_PATCH

Ruby 修補版本號。

版本 3.18 變更: 舊版本的 CMake 對所有變數都使用 RUBY_ 前綴。為了相容性原因,提供了以下變數,請勿在新程式碼中使用它們

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 相同。

提示

版本 3.18 新增。

Ruby_FIND_VIRTUALENV

此變數定義如何處理由 rvm 管理的虛擬環境。 僅當虛擬環境處於活動狀態時才有意義(即,rvm 腳本已執行,或至少已設定 MY_RUBY_HOME 環境變數)。 Ruby_FIND_VIRTUALENV 變數可以設定為空值或下列其中之一:

  • FIRST:在任何其他用於尋找直譯器的標準路徑之前,會先使用虛擬環境。這是預設值。

  • ONLY:僅使用虛擬環境來尋找直譯器。

  • STANDARD:不使用虛擬環境來尋找直譯器(假設它仍然不在 PATH 中...)。