CMAKE_GENERATOR_TOOLSET

使用者提供的原生建置系統工具集規範。

某些 CMake 產生器支援工具集規範,以告知原生建置系統如何選擇編譯器。如果使用者指定了工具集(例如,透過 cmake -T 選項,或透過 CMAKE_GENERATOR_TOOLSET 環境變數),則此變數中將提供該值。

專案程式碼絕不應修改此變數的值。CMAKE_TOOLCHAIN_FILE 變數指定的工具鏈檔案可能會初始化 CMAKE_GENERATOR_TOOLSET。一旦使用此變數的特定值初始化了給定的建置樹狀結構,變更該值將會產生未定義的行為。

工具集規範僅在特定產生器上受支援

有關允許的工具集名稱,請參閱原生建置系統文件。

Visual Studio 工具集選擇

Visual Studio 產生器 支援使用以下其中一種形式的工具集規範

  • 工具集

  • 工具集[,key=value]*

  • key=value[,key=value]*

工具集 指定工具集名稱。所選工具集名稱在 CMAKE_VS_PLATFORM_TOOLSET 變數中提供。

key=value 配對形成以逗號分隔的選項清單,用於指定工具集選擇的產生器特定詳細資訊。支援的配對如下:

cuda=<版本>|<路徑>

指定要使用的 CUDA 工具組版本或獨立 CUDA 工具組目錄的路徑。VS 2010 及更高版本支援。該版本只能與全域安裝的 CUDA 工具組 VS 整合一起使用。請參閱 CMAKE_VS_PLATFORM_TOOLSET_CUDACMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR 變數。

fortran=<編譯器>

在版本 3.29 中新增。

指定要使用的 Fortran 編譯器,在已安裝所需 Visual Studio 整合功能的編譯器中。該值可以是以下之一:

ifort

Intel classic Fortran 編譯器。

ifx

Intel oneAPI Fortran 編譯器。

請參閱 CMAKE_VS_PLATFORM_TOOLSET_FORTRAN 變數。

host=<架構>

將主機工具架構指定為 x64x86。VS 2013 及更高版本支援。請參閱 CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE 變數。

version=<版本>

指定要使用的工具集版本。VS 2017 及更高版本支援,並安裝了指定的工具集。請參閱 CMAKE_VS_PLATFORM_TOOLSET_VERSION 變數。

VCTargetsPath=<路徑>

為 Visual Studio 專案檔案指定替代的 VCTargetsPath 值。這允許使用未與 VS 一起安裝的 VS 平台擴充組態檔案 (.props.targets)。

Visual Studio 工具集自訂

這些是不穩定的介面,沒有相容性保證,因為它們會連結到未記錄的內部 CMake 實作詳細資訊。機構可以使用這些介面來內部維護對非公開 Visual Studio 平台和工具集的支持,但必須承擔責任,隨著 CMake 的變更進行更新。

提供其他 key=value 配對

customFlagTableDir=<路徑>

在版本 3.21 中新增。

指定要從中載入自訂旗標表的目錄的絕對路徑,自訂旗標表以 JSON 文件形式儲存,檔案名稱的格式為 <platform>_<toolset>_<tool>.json<platform>_<tool>.json,其中 <platform>CMAKE_VS_PLATFORM_NAME<toolset>CMAKE_VS_PLATFORM_TOOLSET,而 <tool> 是旗標表所針對的工具。此命名模式是 CMake 的內部實作細節。<tool> 名稱未記錄。.json 旗標表檔案的格式未記錄。