CMAKE_GENERATOR_TOOLSET¶
使用者提供的原生建置系統工具鏈規格。
某些 CMake 產生器支援工具鏈規格,以告知原生建置系統如何選擇編譯器。如果使用者指定了工具鏈(例如透過 cmake -T
選項,或透過 CMAKE_GENERATOR_TOOLSET
環境變數),則此值將在此變數中可用。
專案程式碼永遠不應修改此變數的值。由 CMAKE_TOOLCHAIN_FILE
變數指定的工具鏈檔案可能會初始化 CMAKE_GENERATOR_TOOLSET
。一旦給定的建置樹狀結構已使用此變數的特定值初始化,則變更該值的行為是未定義的。
工具鏈規格僅在特定產生器上受支援
Visual Studio 產生器,適用於 VS 2010 及更高版本
Xcode
產生器,適用於 Xcode 3.0 及更高版本
請參閱原生建置系統文件以了解允許的工具鏈名稱。
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_CUDA
和CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR
變數。fortran=<compiler>
在 3.29 版本中新增。
指定要使用的 Fortran 編譯器,在那些已安裝所需 Visual Studio 整合功能的編譯器中選擇。該值可能是以下之一:
ifort
Intel classic Fortran 編譯器。
ifx
Intel oneAPI Fortran 編譯器。
host=<arch>
將主機工具架構指定為
x64
或x86
。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
旗標表檔案的格式也未記錄在文件中。