2011-03-08 13 views
9

Estoy usando Cmake con Cpack para crear el paquete Debian.¿Cómo agregar archivos al paquete Debian con CPack?

Me gustaría usar Cpack para generar un paquete que instalará esos archivos en una ubicación específica. (ej./Usr/lib/usr/include/aaa)

cada biblioteca y archivos de cabecera se especifican en un comando de instalar, y escribo opciones CPack e incluyen CPack en CMakeLists.txt raíz

(sure root y middle CMakeList.txt solo tienen establecido o add_subdirectory)

El directorio del proyecto tiene el siguiente aspecto.

root(CMakeLists.txt CPack) ┬AAA(CMakeLists.txt)─┬─AAA2(CMakeLists.txt install)-src-include 
          │     └─AAA3(CMakeLists.txt install)-src-include 
          ├BBB(CMakeLists.txt)─┬─BBB2(CMakeLists.txt install)-src-include 
... 

mandato de instalación parece que le gusta:

ADD_LIBRARY(${AAA2} SHARED ${CMAKE_CURRENT_SOURCE_DIR}/${AAA2_SOURCE_DIR}/AAA.c) 
INSTALL(TARGETS ${AAA2} DESTINATION /usr/lib) 
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${AAA_INCLUDE_DIR}/AAA2.h DESTINATION /usr/include/AAA) 

he intentado hacer con el paquete "make install" comando con cmake

cpack hecho de paquetes de Debian, pero que no tiene ningún archivo.

¿Qué hice mal? ¿Cómo puedo agregar archivos al paquete Debian con cpack?

Respuesta

7

que está utilizando rutas absolutas de los valores de instalar destino de norma: (es decir, "/ usr/lib")

uso justo "lib" en su lugar. Que se colocará debajo de CMAKE_INSTALL_PREFIX, ya que no es una ruta absoluta.

Puede controlar la parte "/ usr" con CMAKE_INSTALL_PREFIX, o con algunas variables específicas del generador de CPACK, como CPACK_PACKAGING_PREFIX, según sea necesario, más adelante. (Con suerte, ni siquiera tendrá que hacerlo, ya que el comportamiento predeterminado debería ser suficiente en función del tipo de paquete CPack que esté creando)

Debe evitar el uso de rutas absolutas en las reglas de instalación de CMake a menos que el archivo deba siempre se debe instalar en esa ubicación en todas las plataformas.

+0

realmente gracias !! ahora entiendo acerca de las rutas en el comando de instalación. –

Cuestiones relacionadas