2011-03-08 8 views
9

Sto usando Cmake con Cpack per creare un pacchetto debian.Come aggiungere file al pacchetto debian con CPack?

Vorrei utilizzare Cpack per generare un pacchetto che installerà i file in una posizione specifica. (es./Usr/lib/usr/include/aaa)

ogni file di libreria e di intestazione sono specificati in un comando di installazione, e scrivo opzioni CPack e comprendono CPack in CMakeLists.txt radice

(Certamente root e middle CMakeList.txt hanno solo il comando set o add_subdirectory)

la directory di progetto appare come segue.

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 
... 

comando di installazione sembra piacere:

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) 

Ho provato pacchetto make con "make install" comando con CMake

CPack fatta pacchetto Debian, ma che non ha alcun file.

cosa ho sbagliato? come posso aggiungere file al pacchetto debian con cpack?

risposta

7

stai usando percorsi assoluti per i vostri valori installazione Rule Destination: (vale a dire, "/ usr/lib")

Usa solo "lib", invece. Che verrà posizionato sotto CMAKE_INSTALL_PREFIX, poiché non è un percorso assoluto.

È possibile controllare la parte "/ usr" con CMAKE_INSTALL_PREFIX o con alcune variabili specifiche del generatore CPACK_, come CPACK_PACKAGING_PREFIX, in base alle esigenze, in un secondo momento. (Si spera, non sarà nemmeno bisogno di, come il comportamento di default dovrebbe essere in gran parte sufficienti in base a quale tipo di pacchetto CPack che si sta creando.)

Si dovrebbe evitare di utilizzare percorsi assoluti in CMake installare regole meno che il file deve essere sempre installato in quella posizione su tutte le piattaforme.

+0

davvero grazie !! ora capisco i percorsi nel comando di installazione. –