CMake:下载并运行msi

使用kitware的CMake,是否可以自动下载微软安装程序(MSI)文件并执行它(当然是在Windows上)?

一般应该是。 但是,清楚地运行安装程序将阻止CMake进程,直到用户完成安装程序的所有必需输入。

下面是使用file(DOWNLOAD ...)execute_process 7-zip安装程序示例:

 set(DownloadedMsi ${CMAKE_BINARY_DIR}/7z920-x64.msi) file(DOWNLOAD http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7z920-x64.msi/download ${DownloadedMsi} TIMEOUT 30 STATUS StatusVar LOG LogVar EXPECTED_HASH SHA1=4173fea2af9a595fa0be1ef8251f412229687be1) message("\${StatusVar} - ${StatusVar}") message("\${LogVar} - ${LogVar}\n\n\n") execute_process(COMMAND cmd /c "${DownloadedMsi}" RESULT_VARIABLE ResultVar OUTPUT_VARIABLE OutputVar ERROR_VARIABLE ErrorVar) message("\${ResultVar} - ${ResultVar}") message("\${OutputVar} - ${OutputVar}") message("\${ErrorVar} - ${ErrorVar}")