【发布时间】:2017-02-01 16:39:11
【问题描述】:
而不是使用presented here的方法,我想在CMake文件中手动设置一个Visual Studio项目的属性,在这种情况下,平台工具集为$(DefaultPlatformToolset)(see this image),这是一个VS宏.有可能吗?
【问题讨论】:
标签: c++ visual-studio cmake
而不是使用presented here的方法,我想在CMake文件中手动设置一个Visual Studio项目的属性,在这种情况下,平台工具集为$(DefaultPlatformToolset)(see this image),这是一个VS宏.有可能吗?
【问题讨论】:
标签: c++ visual-studio cmake
这通常是 CMAKE_GENERATOR_TOOLSET 的用途,但是,它应该在工具链文件中使用,而不是在 CMakeLists.txt 中。
用户指定的本地构建系统工具集名称。
一些 CMake 生成器支持将工具集名称赋予本机 构建系统以选择编译器。如果用户指定一个工具集 名称(例如,通过 cmake -T 选项)该值将在 这个变量。
此变量的值不应被项目代码修改。一种 CMAKE_TOOLCHAIN_FILE 变量指定的工具链文件可能 初始化 CMAKE_GENERATOR_TOOLSET。一旦给定的构建树已经 用这个变量的特定值初始化,改变 value 具有未定义的行为。
我认为如果您在拨打project 之前设置它,那么理论上它仍然可以工作,尽管显然这不是支持的使用方法,因此兼容性可能会有所不同。
【讨论】:
project 调用之前定义CMAKE_GENERATOR_TOOLSET 是有效的。就我而言,从 VS2017 设置 v120_xp。
set(CMAKE_GENERATOR_TOOLSET "$(DefaultPlatformToolset)") 就像一个魅力。谢谢!