CMAKE_GENERATOR_TOOLSET¶
用户提供的本机构建系统工具集说明。
一些 CMake 生成器支持工具集说明,用于告知本机构建系统如何选择编译器。如果用户指定了工具集(例如,通过 cmake -T
选项或 CMAKE_GENERATOR_TOOLSET
环境变量),其值将在此变量中提供。
该变量的值绝不应该被项目代码修改。由 CMAKE_TOOLCHAIN_FILE
变量指定的工具链文件可能会对 CMAKE_GENERATOR_TOOLSET
进行初始化。一旦特定构建树使用此变量的具体值进行初始化,更改此值将导致行为未定义。
仅在特定生成器上支持工具集说明
VS 2010 及更高版本的 Visual Studio 生成器
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=<编译器>
在版本 3.29 中添加。
指定要使用的 Fortran 编译器,其中已安装必需的 Visual Studio 集成功能。值可以是以下之一
ifort
Intel 经典 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
标志表文件的格式没有说明文档。