cpack 创建 zip 而不在 zip 中创建自命名目录
cpack create zip without creating self named directory inside zip
我正在用我的目标二进制文件和附带的头文件创建一个 zip。我正在尝试找到一种方法来让它工作,而无需在 zip 中创建一个自命名的文件夹,并且让 zip 只在其根目录中包含目标二进制文件和头文件。
这是 dropbox 上的一个小 zip (5k) 压缩包中的整个项目:link
以下是我构建和打包的方式:
cd Build
cmake ..
make
make package
版本详情:
> cmake --version
cmake version 3.10.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
> cpack --version
cpack version 3.10.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
> gcc --version
gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is > NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
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
我正在寻找的选项称为 CPACK_INCLUDE_TOPLEVEL_DIRECTORY
我在 CMakeLists.txt 之前将此行添加到 include(CPack)
:
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF)
我正在用我的目标二进制文件和附带的头文件创建一个 zip。我正在尝试找到一种方法来让它工作,而无需在 zip 中创建一个自命名的文件夹,并且让 zip 只在其根目录中包含目标二进制文件和头文件。
这是 dropbox 上的一个小 zip (5k) 压缩包中的整个项目:link
以下是我构建和打包的方式:
cd Build
cmake ..
make
make package
版本详情:
> cmake --version
cmake version 3.10.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
> cpack --version
cpack version 3.10.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
> gcc --version
gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is > NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
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
我正在寻找的选项称为 CPACK_INCLUDE_TOPLEVEL_DIRECTORY
我在 CMakeLists.txt 之前将此行添加到 include(CPack)
:
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF)