gpt4 book ai didi

使用 CMake 压缩 zip 文件?

转载 作者:行者123 更新时间:2023-12-03 11:51:17 32 4
gpt4 key购买 nike

TL;博士版本:
CMake(> = 2.8)是否可以从某些文件生成zip文件并将打包的zip文件放在特定位置?
加长版:
我有一个 CMakeLists.txt 将我的项目构建到一个 .exe 文件中,这个 exe 文件将从一个 zip 文件中读取数据。要打包在 zip 文件中的内容在我的 git 存储库中,以便也可以对其进行编辑。但是,程序需要 zip 文件中的这些数据。因此,如果 CMake 脚本可以获取数据,将其放入 zip 文件中,然后将其放在 exe 旁边,那就太好了。我已经听说过 CPack,但我没有找到任何简单的例子,我不确定这是否适合我的任务。
这可能吗?如果是,如何?

最佳答案

由于版本 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 版本的解决方法,您可以使用 jar命令是标准 Java JRE 安装的一部分。
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 ) 中生成。

关于使用 CMake 压缩 zip 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7050997/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com