我使用的是CMake的外部项目支持,与我们提出的非常相似 CMake + GoogleTest
显然,我的构建最终取决于下载步骤,因此只有在可能的情况下才能工作 - 即我需要互联网连接。但是,如果我使用固定的修改来下载(而不是HEAD)并且已经构建了一次外部项目,我不确定为什么每次都会执行此下载步骤。
虽然似乎没有下载任何实际文件并且没有触发耗时的重建,但是当我不在线时,我的构建仍然失败。在没有互联网连接的情况下工作时非常烦人,例如在火车上。
有没有办法让我的构建完全跳过下载步骤,如果它可以被推断为unnessary(固定版本+ lib已经构建EP /没有执行干净步骤)?
答案 0 :(得分:0)
thiagowfx评论部分中的建议将帮助您完成大部分工作,但运行make clean
会让您回到依靠互联网构建的位置。 (建议将UPDATE_COMMAND设置为ExternalProject_Add中的空字符串。)
为避免这种情况,请根据Ding-Yi Chen的this post建议,将SET_DIRECTORY_PROPERTIES(PROPERTIES CLEAN_NO_CUSTOM 1)
添加到CMakeLists.txt.in文件中。这将确保make clean
不会删除外部项目的二进制文件。