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]*
工具集
指定工具集名稱。所選工具集名稱在 CMAKE_VS_PLATFORM_TOOLSET
變數中提供。
key=value
配對形成以逗號分隔的選項清單,用於指定工具集選擇的產生器特定詳細資訊。支援的配對如下:
cuda=<版本>|<路徑>
指定要使用的 CUDA 工具組版本或獨立 CUDA 工具組目錄的路徑。VS 2010 及更高版本支援。該版本只能與全域安裝的 CUDA 工具組 VS 整合一起使用。請參閱
CMAKE_VS_PLATFORM_TOOLSET_CUDA
和CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR
變數。fortran=<編譯器>
在版本 3.29 中新增。
指定要使用的 Fortran 編譯器,在已安裝所需 Visual Studio 整合功能的編譯器中。該值可以是以下之一:
ifort
Intel classic Fortran 編譯器。
ifx
Intel oneAPI Fortran 編譯器。
host=<架構>
將主機工具架構指定為
x64
或x86
。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
旗標表檔案的格式未記錄。