经过一番痛苦之后,我成功地安排我的 CMake 项目通过ExternalProject 使用一些库。我cmake
,我make
,它有效 - 生活是美好的。
但是,如果我再次 make
,它将执行外部项目的更新和安装步骤。我绝对不希望这种情况发生。我该如何防止这种情况发生?
最佳答案
虽然您在自己的答案中提出的方式具有相同的效果,但您可能想要使用的实际选项是 UPDATE_DISCONNECTED
.
来自CMake's documentation ,在更新/补丁选项部分下:
UPDATE_DISCONNECTED <bool>
When enabled, this option causes the update step to be skipped. It does not, however, prevent the download step. The update step can still be added as a step target (see
ExternalProject_Add_StepTargets()
) and called manually.
所以你的最终结果可能如下所示:
ExternalProject_Add( external_lib
# ...
UPDATE_DISCONNECTED True
)
如果您进一步阅读我引用的摘录,文档明确建议不要这样做,并建议通过目录变量 EP_UPDATE_DISCONNECTED
控制更新行为。 ,其值用作 UPDATE_DISCONNECTED
的默认值.
这意味着您可以保留您的 ExternalProject_Add
免费调用UPDATE_DISCONNECTED
选项,然后像这样运行 CMake 命令:
$ cmake .. -DEP_UPDATE_DISCONNECTED:BOOL=True
$ cmake --build . [your_options]
关于cmake - 如何防止 CMake 外部项目在每次制作时更新和重新安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51675100/