Cmake zip文件夹,但删除前导路径 [英] Cmake zip folder but remove leading path

查看:77
本文介绍了Cmake zip文件夹,但删除前导路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从 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文件夹,但删除前导路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆