Как добавить файлы в пакет Debian с помощью CPack? - PullRequest
9 голосов
/ 08 марта 2011

Я использую Cmake с Cpack для создания пакета debian.

Я хотел бы использовать Cpack для генерации пакета, который установит эти файлы в определенное место. (напр. / usr / lib / usr / include / aaa)

каждая библиотека и заголовочные файлы указаны в команде установки, и я пишу опции CPack и включаю CPack в корневой CMakeLists.txt

(в корневом и среднем CMakeList.txt есть только команда set или add_subdirectory)

каталог проекта выглядит следующим образом.

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

команда установки выглядит так:

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)

Я пытался создать пакет с помощью команды "make install" с помощью cmake

cpack сделал пакет debian, но в нем нет файла.

что я сделал не так? как я могу добавить файлы в пакет debian с помощью cpack?

1 Ответ

7 голосов
/ 09 марта 2011

Вы используете абсолютные пути для значений правила установки DESTINATION: (т.е. "/ usr / lib")

Вместо этого используйте просто "lib". Который будет помещен под CMAKE_INSTALL_PREFIX, так как это не абсолютный путь.

Вы можете управлять частью "/ usr" с помощью CMAKE_INSTALL_PREFIX или с помощью некоторых специфичных для генератора переменных CPACK_, таких как CPACK_PACKAGING_PREFIX, при необходимости позже. (Надеюсь, вам это даже не понадобится, поскольку поведение по умолчанию должно быть в основном достаточным в зависимости от того, какой тип пакета CPack вы создаете.)

Следует избегать использования абсолютных путей в правилах установки CMake, если файл не всегда должен быть установлен в этом месте на всех платформах.

...