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]*

toolset 指定工具鏈名稱。選定的工具鏈名稱在 CMAKE_VS_PLATFORM_TOOLSET 變數中提供。

key=value 配對形成一個逗號分隔的選項列表,以指定工具鏈選擇的產生器特定詳細資訊。支援的配對如下:

cuda=<version>|<path>

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

fortran=<compiler>

在 3.29 版本中新增。

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

ifort

Intel classic Fortran 編譯器。

ifx

Intel oneAPI Fortran 編譯器。

請參閱 CMAKE_VS_PLATFORM_TOOLSET_FORTRAN 變數。

host=<arch>

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

version=<version>

指定要使用的工具鏈版本。VS 2017 及更高版本支援,前提是已安裝指定的工具鏈。請參閱 CMAKE_VS_PLATFORM_TOOLSET_VERSION 變數。

VCTargetsPath=<path>

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

Visual Studio 工具鏈自訂

這些是不穩定的介面,不提供相容性保證,因為它們連結到未記錄的內部 CMake 實作細節。機構可以使用這些介面在內部維護對非公開 Visual Studio 平台和工具鏈的支援,但必須承擔在 CMake 變更時進行更新的責任。

還有其他 key=value 配對可用

customFlagTableDir=<path>

在 3.21 版本中新增。

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