1
使用kitware的CMake,是否可以自動下載Microsoft安裝程序(MSI)文件並執行它(當然是在Windows上)?CMake:下載並運行msi
使用kitware的CMake,是否可以自動下載Microsoft安裝程序(MSI)文件並執行它(當然是在Windows上)?CMake:下載並運行msi
它一般應該是。但是,清楚地運行安裝程序將阻止CMake進程,直到用戶完成安裝程序的所有必需輸入爲止。
下面是7-Zip的安裝程序利用的file(DOWNLOAD ...)
和execute_process
一個例子:
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}")
感謝。運行「MsiExec」而不是cmd可能會更好,但最終我發現它更適合於將適當的dll和lib放入我們的源代碼控制系統並從那裏提取它們。 – gerardw