如何设置外部项目来下载不是.tgz文件的链接?cmake ExternalProject_Add如何下载URL非tar文件?
例如,Catch提供了一个单一标题分发版。我想只是下载这个而不是git repo或.tgz版本。但我还没有想出如何告诉CMake做到这一点。
我想这样做:
Include(ExternalProject)
ExternalProject_Add(
catch
PREFIX ${CMAKE_BINARY_DIR}/catch
URL https://github.com/philsquared/Catch/releases/download/v1.9.6/catch.hpp ${CMAKE_BINARY_DIR}/catch
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
)
为URL假定URL是一个压缩的tar文件,就会失败。我尝试了各种各样的DOWNLOAD_COMMAND而没有任何成功。
谢谢。这正是我正在寻找的。还要感谢关于LOG_DOWNLOAD的提示。该文件正在下载罚款。但是,CMake在下载后失败,直到我关闭了LOG_DOWNLOAD。我甚至使用CMakeLists 3.8.2。所以看起来它可能会再次被打破。 – Tal
我刚刚打开此问题:https://gitlab.kitware.com/cmake/cmake/issues/17046。 – Tal
关于CMake问题的后续处理。这在CMake 3.9中得到了修复,并且已经被修补到3.8树中,所以如果还有另一个3.8版本(即3.8.3),它也应该在那里修复。欲了解更多信息:https://gitlab.kitware.com/cmake/cmake/issues/17046#note_289032 – Tal