【发布时间】:2020-09-24 14:49:35
【问题描述】:
例如,当使用 ExternalProject 或 FetchContent 模块时,可以在 CMake 中下载和使用其他数据。如果没有互联网连接,这些模块会失败,并且无论下载是否成功,CMake 都不会完成配置。有诸如 FETCHCONTENT_FULLY_DISCONNECTED 或 FETCHCONTENT_UPDATES_DISCONNECTED 之类的标志来防止检查并因此防止失败。但是这些必须手动设置。 (相关问题:cmake: external project update and a work offline)。
是否可以检查是否有连接,然后自动设置 FETCHCONTENT_FULLY_DISCONNECTED?怎么做?或者如果没有互联网连接,是否有其他方法可以防止 CMake 失败?
在我们的例子中,我们使用 FetchContent 下载库,然后使用例如 find_package 使它们可用。我们的工作流程目前不包括手动调整 CMake 选项/变量,我们不想添加它。 CMake 通过我们使用的 IDE 获取所有需要的选项,例如CMAKE_BUILD_TYPE 或自定义标志。我们需要将目标加倍,以便为每个现有组合提供非连接版本。因此这种半手动的方式也不可行。
【问题讨论】:
标签: cmake download connection offline detection