我正在尝试让 cmake 下载一些文件。当按下“生成”按钮时,是否可以这样做一次?我只能将其设置为每次按下配置按钮或每次构建项目时运行。
问问题
4434 次
2 回答
6
CMakeLists 在配置时处理,所以你不能让它在生成时做事。但是,您可以设置缓存变量并将其用作标志来确定是否应该进行下载。就像是:
if(NOT DOWNLOAD_HAPPENED)
execute_process( ... do the downloading stuff ... )
set(DOWNLOAD_HAPPENED TRUE CACHE BOOL "Has the download happened?" FORCE)
endif()
这将在第一次配置时执行下载,并且不再执行(除非用户手动重置 DOWNLOAD_HAPPENED)变量。但是,如果您真的需要在最后一次配置时进行下载,那么您就不走运了,AFAIK。
于 2012-12-04T16:12:25.980 回答
3
这样的事情应该会有所帮助:
add_custom_command(
OUTPUT myfile.txt
COMMAND wget http://myurl.com/myfile.txt
)
编辑 1
需要将其作为主命令的依赖项:
add_dependencies(<myprogram> wget)
于 2012-12-04T15:21:42.917 回答