【问题标题】:CMake build fails if it can't reach dependency repo如果 CMake 无法到达依赖库,则构建失败
【发布时间】:2016-03-29 08:52:25
【问题描述】:

我有一个依赖于另一个 CMake 项目(集成商)的 CMake 项目(myapp)。集成器项目是通过 ExternalProject_Add 声明的,我使用 GIT_TAG 参数来指示要构建的集成器代码版本。这在在线时效果很好。但是,如果我离线,我会遇到构建失败的问题。如果它无法访问 git repo,它总是会失败构建,即使它之前已经下载了 repo 的副本。我可以让 CMake 停止访问 GIT_TAG 存储库,而只使用我上次在线时下载的代码进行构建吗?

【问题讨论】:

  • 如何设置UPDATE_DISCONNECTED 1 选项? (请参阅docs)正如文档所说,“如果设置了 UPDATE_DISCONNECTED,则在构建主目标时不会自动执行更新步骤。更新步骤仍然可以作为步骤目标添加并手动调用。如果您希望允许在断开网络连接时构建项目(下载步骤可能仍需要网络)。默认情况下禁用。"
  • 谢谢,我试试看。这听起来当然很有希望。我已多次阅读该文档页面,但没有看到该参数。叹息。
  • UPDATE_DISCONNECTED 正是我想要的。非常感谢@DanMasek!

标签: cmake dependencies git-tag


【解决方案1】:

基于ExternalProject的文档,有一个名为UPDATE_DISCONNECTED的选项。

如果设置了UPDATE_DISCONNECTED,则不执行更新步骤 构建主要目标时自动生成。更新步骤仍然可以 添加为步骤目标并手动调用。这很有用,如果你 想要在断开连接时允许构建项目 网络(下载步骤可能仍需要网络)。这个 默认禁用。

因此,您应该添加选项设置

UPDATE_DISCONNECTED 1

到您的ExternalProject_Add 声明,以便能够离线工作。

【讨论】:

    猜你喜欢
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 2017-07-20
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多