【问题标题】:How do I use CMake to set the VS platform toolset property?如何使用 CMake 设置 VS 平台工具集属性?
【发布时间】:2017-02-01 16:39:11
【问题描述】:

而不是使用presented here的方法,我想在CMake文件中手动设置一个Visual Studio项目的属性,在这种情况下,平台工具集为$(DefaultPlatformToolset)(see this image),这是一个VS宏.有可能吗?

【问题讨论】:

    标签: c++ visual-studio cmake


    【解决方案1】:

    这通常是 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)") 就像一个魅力。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    • 2018-01-23
    • 1970-01-01
    相关资源
    最近更新 更多