cpack创建zip而不在zip

时间:2019-01-23 16:54:03

标签: c++ cmake cpack

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

以下是整个项目,放在保管箱上的一个小拉链(5k)中:link

这是我的构建和打包方式:

cd Build
cmake ..
make
make package

版本详细信息:

  

> cmake --version

     

cmake版本3.10.2

     

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

     

> cpack --version

     

cpack版本3.10.2

     

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

     

> gcc --version

     

gcc(Ubuntu 7.3.0-27ubuntu1〜18.04)7.3.0   版权所有(C)2017自由软件基金会,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)

所需的zip内容:

libSIS_CG_Lib.a
deps/vec3.h

zip的实际内容:

sis_gc_lib-0.1.1-Linux/libSIS_CG_Lib.a
sis_gc_lib-0.1.1-Linux/deps/vec3.h

1 个答案:

答案 0 :(得分:0)

我一直在寻找的选项称为CPACK_INCLUDE_TOPLEVEL_DIRECTORY

我将此行添加到python -c print('Hi') 之前的CMakeLists.txt中:

include(CPack)