我假設你已經安裝了一個壓縮工具(WinZip或7z等)。你可以寫一個find_zip工具腳本會爲WinZip的,或7Z等搜索...
片段爲WinZip的:
FIND_PROGRAM(ZIP_EXECUTABLE wzzip PATHS "$ENV{ProgramFiles}/WinZip")
IF(ZIP_EXECUTABLE)
SET(ZIP_COMMAND "\"${ZIP_EXECUTABLE}\" -P \"<ARCHIVE>\" @<FILELIST>")
ENDIF(ZIP_EXECUTABLE)
片段7-ZIP:
FIND_PROGRAM(ZIP_EXECUTABLE 7z PATHS "$ENV{ProgramFiles}/7-Zip")
IF(ZIP_EXECUTABLE)
SET(ZIP_COMMAND "\"${ZIP_EXECUTABLE}\" a -tzip \"<ARCHIVE>\" @<FILELIST>")
ENDIF(ZIP_EXECUTABLE)
取看看文件
<cmake-install-dir>\share\cmake-2.8\Modules\CPackZIP.cmake
它顯示了CPack如何搜索Zip_Executable並準備一些「有用的」默認標誌秒。
在那之後,我會建議execute_process,類似沙克拉的回答
此方法似乎創建一個空的zip文件。但是,似乎我能夠通過指定「files-from = files.txt」選項來創建填充歸檔。似乎在目錄和目錄中的文件失敗 – Begui
啊,只是想通了......我會在下面解釋我做了什麼來實現它的工作 – Begui