如何使用CMake设置VS平台工具集属性?

3

不使用这里提供的方法,我想在CMake文件中手动设置Visual Studio项目的属性,例如平台工具集设置为$(DefaultPlatformToolset)(查看此图像),这是一个VS宏。这种做法是否可行?

1个回答

4
这是CMAKE_GENERATOR_TOOLSET的一般用法,但应在工具链文件中使用,而不是在CMakeLists.txt中使用。

用户指定的本地构建系统工具集名称。

某些CMake生成器支持指定一个工具集名称以供本地构建系统选择编译器。如果用户指定了工具集名称(例如通过cmake -T选项),则该值将在此变量中可用。

该变量的值不应由项目代码修改。由CMAKE_TOOLCHAIN_FILE变量指定的工具链文件可以初始化CMAKE_GENERATOR_TOOLSET。一旦给定的构建树已经使用特定的值对该变量进行了初始化,更改该值的行为是未定义的。

我认为如果在调用project之前设置它,则理论上仍然可以工作,尽管这显然不是使用它的支持方法,因此兼容性可能会有所不同。

我可以确认,在调用project之前定义CMAKE_GENERATOR_TOOLSET是有效的。在我的情况下,设置为来自VS2017的v120_xp。 - Neal Kruis
抱歉耽搁了。在工具链文件中简单地执行 set(CMAKE_GENERATOR_TOOLSET "$(DefaultPlatformToolset)") 就像魔法一样奏效了。谢谢! - haidahaida

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接