1

キットウェアの CMake を使用して、Microsoft インストーラー (MSI) ファイルを自動的にダウンロードして実行することはできますか (もちろん Windows 上で)。

4

1 に答える 1

2

一般的にはそうあるべきです。ただし、インストーラーを実行すると、ユーザーがインストーラーへの必要な入力をすべて完了するまで CMake プロセスがブロックされることは明らかです。

file(DOWNLOAD ...)とを使用する 7-zip のインストーラーの例を次に示します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}")
于 2013-06-21T01:29:54.413 に答える