CMAKE_GENERATOR_INSTANCE¶
3.11 版本新增。
用户提供的生成器特定的实例规范。
某些 CMake 生成器支持在存在多个实例时选择原生构建系统的实例。如果用户指定了一个实例(例如,通过设置此缓存条目或通过 CMAKE_GENERATOR_INSTANCE
环境变量),或者在首次配置构建树时选择了默认实例后,该值将在该变量中可用。
此变量的值绝不应由项目代码修改。通过 CMAKE_TOOLCHAIN_FILE
变量指定的工具链文件可以初始化 CMAKE_GENERATOR_INSTANCE
作为缓存条目。一旦给定的构建树已使用此变量的特定值初始化,更改该值将导致未定义的行为。
实例规范仅在特定生成器上受支持。
Visual Studio 实例选择¶
Visual Studio 生成器 支持 Visual Studio 2017 及更高版本的实例规范。 CMAKE_GENERATOR_INSTANCE
变量可以设置为缓存条目,通过以下一种形式选择 Visual Studio 的实例:
location
location[,key=value]*
key=value[,key=value]*
该 location
指定了 VS 安装的顶级目录的绝对路径。
该 key=value
对构成了一个逗号分隔的选项列表,用于指定实例选择的详细信息。支持的对是:
version=<major>.<minor>.<date>.<build>
在版本 3.23 中添加。
指定 4 部分的 VS 构建版本,又名 Build Number。
这些组件是:
<major>.<minor>
VS 的主版本号和次版本号。它们与发布版本号相同。
<date>
一个构建日期,格式为
MMMDD
,其中MMM
是自 Microsoft 使用的纪元以来的月份索引,而DD
是该月份中的某一天。<build>
由
<date>
表示的当天的构建索引。构建号由
vswhere
报告为installationVersion
。例如,VS 16.11.10 的构建号为16.11.32126.315
。
在版本 3.23 中添加: 可以通过同时提供 location
和 version=
来指定一个未被 Visual Studio Installer 识别的可移植 VS 实例。
如果 CMAKE_GENERATOR_INSTANCE
的值没有被用户或工具链文件显式指定,CMake 会查询 Visual Studio Installer 来定位 VS 实例,选择一个,并将变量设置为缓存条目以持久存储该值。如果设置了形式为 VS##0COMNTOOLS
的环境变量,其中 ##
是 Visual Studio 的主版本号,并且该变量指向 VS 实例内的 Common7/Tools
目录,那么将使用该实例。否则,如果安装了多个 VS 实例,我们不定义默认选择哪一个。
所选 VS 实例的 VS 版本构建号在 CMAKE_VS_VERSION_BUILD_NUMBER
变量中提供。