由于版本3.2 CMake具有生成内置zip文件的功能. CMake
command-line mode子命令tar支持创建zip和7zip存档.
例如,如果当前的CMake源目录包含文件testfile.txt和目录testdir,则可以使用以下CMake命令创建一个包含这两个项目的zip文件:
add_custom_target(create_zip COMMAND
${CMAKE_COMMAND} -E tar "cfv" "archive.zip" --format=zip
"${CMAKE_CURRENT_SOURCE_DIR}/testfile.txt"
"${CMAKE_CURRENT_SOURCE_DIR}/testdir")
作为早期CMake版本的解决方案,您可以使用作为标准Java JRE安装一部分的jar命令.
find_package(Java)
execute_process(
COMMAND
"${Java_JAR_EXECUTABLE}" "cfM" "archive.zip"
"-C" "${CMAKE_CURRENT_SOURCE_DIR}" "testfile.txt"
"-C" "${CMAKE_CURRENT_SOURCE_DIR}" "testdir"
RESULT_VARIABLE _result
)
zip文件将在当前的CMake二进制目录(CMAKE_CURRENT_BINARY_DIR)中生成.