【问题标题】:Create Visual Studio "Custom Build Step" with CMake使用 CMake 创建 Visual Studio“自定义构建步骤”
【发布时间】:2012-02-22 21:05:15
【问题描述】:

我希望每次在 Visual Studio 中构建项目时都运行代码生成器,即使项目中的源文件没有更改。因此,我希望按照Visual Studio: Run C++ project Post-Build Event even if project is up-to-date 中的说明设置自定义构建步骤。

如何使用 CMake 创建这样的构建步骤?

【问题讨论】:

    标签: c++ visual-studio cmake


    【解决方案1】:

    我认为您正在寻找自定义目标:add_custom_target

    来自文档:

    添加一个没有输出的目标,这样它就会一直被构建。

    或者如果你正在生成一个代码文件,

    https://cmake.org/cmake/help/v2.8.8/cmake.html#command:add_custom_target

    可以运行POST_BUILD并生成输出。

    【讨论】:

    • 谢谢!如果我的自定义目标(我选择选项 1)失败,您知道是否有可能导致 Visual Studio 构建失败?返回码好像没有效果?
    • 我不确定,我用的是Linux系统。但是在我的机器上,如果目标中使用的命令返回非零,则构建失败,如果它返回零则有效。所以这可能是 VS+CMake 问题,也可能是您使用的 CMake 版本有问题。我没有任何可以尝试的 Windows 机器!
    【解决方案2】:

    这对于 CMake 来说是不可能的,因此肯定是缺少的功能

    Tarydon 在您提到的问题中的回答是关于精确设置您想要的 - “自定义构建步骤”。这意味着您仍然只有您的主要目标(VS 项目),看起来像“构建后事件”但技术上不是,因为构建后事件不会运行,如果该项目是最新的。

    tpg2114 的答案有效,但有一个主要缺点;它通过虚假项目向您的解决方案发送垃圾邮件。如果您的解决方案中有一百个项目,那么必须在前一百个项目中添加另外一百个作为构建后包装器的项目当然是不可取的。

    根据您的情况,有时可能更容易使用构建后事件并强制重新构建至少一个源文件,以便项目实际构建并运行您的自定义命令。

    【讨论】:

      猜你喜欢
      • 2011-04-10
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 2021-10-06
      相关资源
      最近更新 更多