cmake ExternalProject\u添加如何下载URL非tar文件?
如何设置外部项目来下载非.tgz文件的链接 例如,提供了一个发行版,它是一个单头发行版。我只想下载这个,而不是git repo或.tgz版本。但我还没弄明白怎么让CMake这么做 我想做一些类似的事情:cmake ExternalProject\u添加如何下载URL非tar文件?,cmake,catch-unit-test,Cmake,Catch Unit Test,如何设置外部项目来下载非.tgz文件的链接 例如,提供了一个发行版,它是一个单头发行版。我只想下载这个,而不是git repo或.tgz版本。但我还没弄明白怎么让CMake这么做 我想做一些类似的事情: Include(ExternalProject) ExternalProject_Add( catch PREFIX ${CMAKE_BINARY_DIR}/catch URL https://github.com/philsquared/Catch/releases/d
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文件。我尝试了各种不同的下载\u命令,但都没有成功。使用ExternalProject\u Add的DOWNLOAD\u NO\u EXTRACT选项
:
只需下载文件,不提取;下载文件的完整路径如下所示
代码示例:
ExternalProject_Add(
catch
PREFIX ${CMAKE_BINARY_DIR}/catch
URL https://github.com/philsquared/Catch/releases/download/v1.9.6/catch.hpp
DOWNLOAD_NO_EXTRACT 1
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
文件将下载到/src
目录中
如果同时使用LOG_DOWNLOAD选项和DOWNLOAD_NO_EXTRACT,则需要CMake 3.9才能正常工作。查看这些错误报告:,。谢谢。那正是我想要的。还感谢您提供有关日志下载的提示。文件下载得很好。但是,在我关闭日志下载之前,CMake在下载后一直失败。我甚至使用了Cmakelist3.8.2。看来它可能又坏了。继续关注CMake问题。这在CMake 3.9中已修复,并已重新修补到3.8树中,因此如果有其他3.8版本(即3.8.3),也应在那里修复。更多信息:@Tal:谢谢,我已经相应地修正了答案。应该是下载\u NO\u摘录1