CMAKE_GENERATOR_TOOLSET¶
用户提供的原生构建系统工具集规范。
一些 CMake 生成器支持工具集规范,以告知原生构建系统如何选择编译器。如果用户指定了一个工具集(例如,通过 cmake -T
选项或通过 CMAKE_GENERATOR_TOOLSET
环境变量),该值将在此变量中可用。
项目代码永远不应修改此变量的值。CMAKE_TOOLCHAIN_FILE
变量指定的工具链文件可能会初始化 CMAKE_GENERATOR_TOOLSET
。一旦给定的构建树已使用此变量的特定值初始化,更改该值将具有未定义的行为。
工具集规范仅在特定生成器上受支持
Visual Studio 生成器,适用于 VS 2010 及更高版本
适用于 Xcode 3.0 及更高版本的
Xcode
生成器
请参阅原生构建系统文档以了解允许的工具集名称。
Visual Studio 工具集选择¶
Visual Studio 生成器 支持使用以下形式之一的工具集规范
toolset
toolset[,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 经典 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
标志表文件的格式未文档化。