cpack crea zip sin crear un directorio con su propio nombre dentro de zip

Resuelto user3667089 asked hace 5 años • 0 respuestas

Estoy creando un zip con mi binario de destino y los archivos de encabezado que lo acompañan. Estoy tratando de encontrar una manera de hacer que esto funcione sin crear una carpeta con su propio nombre dentro del zip, y hacer que el zip simplemente contenga los archivos binarios y de encabezado de destino en su raíz.

Aquí está el proyecto completo en un pequeño zip (5k) en Dropbox: enlace

Así es como construyo y paquete:

cd Build
cmake ..
make
make package

Detalles de la versión:

> cmake --versión

cmake versión 3.10.2

Suite CMake mantenida y respaldada por Kitware (kitware.com/cmake).

> cpack --versión

cpack versión 3.10.2

Suite CMake mantenida y respaldada por Kitware (kitware.com/cmake).

> gcc --versión

gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 Copyright (C) 2017 Free Software Foundation, Inc. Este es software gratuito; consulte la fuente para conocer las condiciones de copia. > NO hay garantía; ni siquiera por COMERCIABILIDAD o IDONEIDAD PARA UN FIN DETERMINADO.

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)

Contenido deseado del zip:

libSIS_CG_Lib.a
deps/vec3.h

Contenido real del zip:

sis_gc_lib-0.1.1-Linux/libSIS_CG_Lib.a
sis_gc_lib-0.1.1-Linux/deps/vec3.h
user3667089 avatar Jan 23 '19 23:01 user3667089
Aceptado

La opción que estaba buscando se llama CPACK_INCLUDE_TOPLEVEL_DIRECTORY

Agregué esta línea a mi CMakeLists.txt antes include(CPack):

set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF)
xoorath avatar Jan 23 '2019 19:01 xoorath