cpack 创建 zip 而不在 zip 中创建自命名目录

xoo*_*ath 5 c++ cmake cpack

我正在使用我的目标二进制文件和随之而来的头文件创建一个 zip 文件。我正在尝试找到一种方法来使其正常工作,而无需在 zip 中创建自命名的文件夹,并且让 zip 在其根目录中仅包含目标二进制文件和头文件。

这是 dropbox 上一个小 zip (5k) 中的整个项目:链接

以下是我的构建和打包方式:

cd Build
cmake ..
make
make package
Run Code Online (Sandbox Code Playgroud)

版本详情:

> cmake --版本

cmake版本3.10.2

CMake 套件由 Kitware (kitware.com/cmake) 维护和支持。

> cpack --版本

cpack版本3.10.2

CMake 套件由 Kitware (kitware.com/cmake) 维护和支持。

> gcc --版本

gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 版权所有 (C) 2017 Free Software Foundation, Inc. 这是免费软件;请参阅复制条件的来源。> 无保修;甚至不是为了适销性或特定用途的适用性。

CMakeLists.txt

cmake_minimum_required(VERSION 3.2)
###################################################################### PROJECT
project(sis_cg_lib)
###################################################################### FILES

file(GLOB_RECURSE SIS_CG_LIB_INC "deps/*.h" "deps/*.inl" )
file(GLOB_RECURSE SIS_CG_LIB_SRC "sources/*.cpp" )

###################################################################### TARGET

add_library(SIS_CG_Lib ${SIS_CG_LIB_INC} ${SIS_CG_LIB_SRC})

###################################################################### SETTINGS

target_include_directories(SIS_CG_Lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/deps)

###################################################################### PACKAGE

install(DIRECTORY deps/
    DESTINATION deps
)

install(TARGETS SIS_CG_Lib
    ARCHIVE DESTINATION .
)

set(CPACK_OUTPUT_FILE_PREFIX "")
set(CPACK_GENERATOR "ZIP" CACHE STRING "Generators to support. semi-colon delimited list")
include(CPack)
Run Code Online (Sandbox Code Playgroud)

所需的 zip 内容:

libSIS_CG_Lib.a
deps/vec3.h
Run Code Online (Sandbox Code Playgroud)

zip 的实际内容:

sis_gc_lib-0.1.1-Linux/libSIS_CG_Lib.a
sis_gc_lib-0.1.1-Linux/deps/vec3.h
Run Code Online (Sandbox Code Playgroud)

xoo*_*ath 6

我正在寻找的选项称为CPACK_INCLUDE_TOPLEVEL_DIRECTORY

我之前将此行添加到我的 CMakeLists.txt 中include(CPack)

set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF)
Run Code Online (Sandbox Code Playgroud)