生成期间的CMake运行命令

car*_*pat 2 cmake

我试图让cmake下载一些文件。当按下“生成”按钮时,是否可以执行一次?我只能将其设置为在每次按下配置按钮或每次构建项目时运行。

Rei*_*ica 5

CMakeList是在配置时处理的,因此您不能在生成时执行它。但是,您可以设置一个缓存变量并将其用作标志,以确定是否应该进行下载。就像是:

if(NOT DOWNLOAD_HAPPENED)
  execute_process( ... do the downloading stuff ... )
  set(DOWNLOAD_HAPPENED TRUE CACHE BOOL "Has the download happened?" FORCE)
endif()
Run Code Online (Sandbox Code Playgroud)

这将在首次配置时执行下载,并且不再执行(除非用户手动重置DOWNLOAD_HAPPENED)变量。但是,如果您确实需要在最后一次配置时进行下载,那么您就走运了AFAIK。