2011-03-08 4 views
9

J'utilise Cmake avec Cpack pour créer le paquet debian.Comment ajouter des fichiers au paquet debian avec CPack?

Je voudrais utiliser Cpack pour générer un package qui va installer ces fichiers à un emplacement spécifique. (ex./Usr/lib/usr/include/aaa)

chaque fichier de bibliothèque et en-tête sont spécifiés dans une commande d'installation, et j'écris des options cpack et inclure cpack dans CMakeLists.txt racine

(assurez-vous que la commande CMakeList.txt de la racine et du milieu a uniquement la commande set ou add_subdirectory)

Le répertoire du projet se présente comme suit.

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

commande install semble aimer:

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) 

J'ai essayé make package avec "make install" commande avec CMake

cpack fait paquet debian mais qui n'a pas de fichier.

qu'est-ce que j'ai fait de mal? comment puis-je ajouter des fichiers au paquet debian avec cpack?

Répondre

7

Vous utilisez des chemins absolus pour vos règles d'installation des valeurs DESTINATION: (par exemple, "/ usr/lib")

Utilisez juste "lib" au lieu. Qui sera placé sous CMAKE_INSTALL_PREFIX, puisqu'il ne s'agit pas d'un chemin absolu.

Vous pouvez contrôler la partie "/ usr" avec CMAKE_INSTALL_PREFIX, ou avec certaines variables spécifiques au générateur CPACK_, comme par exemple, CPACK_PACKAGING_PREFIX, si nécessaire. (Heureusement, vous n'aurez même pas besoin de le faire, car le comportement par défaut devrait être suffisant en fonction du type de paquetage CPack que vous créez.)

Vous devez éviter d'utiliser des chemins absolus dans les règles d'installation de CMake sauf si le fichier doit toujours être installé à cet endroit sur toutes les plateformes.

+0

vraiment merci !! maintenant je comprends à propos des chemins dans la commande d'installation. –

Questions connexes