我假设你已经安装了一个压缩工具(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