问题描述
我想从 CMake 将项目中的文件夹压缩.为此,我使用以下代码片段:
I would like to zip folder in my project from CMake. For that I use following code snippet:
ADD_CUSTOM_COMMAND (
TARGET ${PROJECT_NAME}
PRE_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS -E tar cvf ${ZIP_OUT_DIR}/my_archive.zip --format=zip -- ${FOLDER_TO_ZIP}/another_folder/
)
此代码的问题是,解压缩后的文件包含路径组件(在我的情况下为 ../../my_file.txt
).我尝试使用 tar cvf -C $ {FOLDER_TO_ZIP}/another_folder
,但很遗憾, CMake 不接受此选项.
The problem with this code is that the files after unzipping contain path component (../../my_file.txt
in my case). I tried to use tar cvf -C ${FOLDER_TO_ZIP}/another_folder
but unfortunatelly CMake doesn't accept this option.
使用 CMake 时,如何摆脱zip归档文件中的前导路径?
How can I get rid of leading path from zip archive when using CMake ?
推荐答案
路径是相对于工作目录的.因此,您只需要指定 WORKING_DIRECTORY
:
The paths are relative to the working directory. So you just need to specify the WORKING_DIRECTORY
:
ADD_CUSTOM_COMMAND(
TARGET ${PROJECT_NAME}
PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E tar cvf ${ZIP_OUT_DIR}/my_archive.zip --format=zip -- .
WORKING_DIRECTORY ${FOLDER_TO_ZIP}/another_folder
)
这篇关于Cmake zip文件夹,但删除前导路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!