CPack несколько пакетов с собственными зависимостями

У меня проблема с созданием двух пакетов Debian с CPack и CMake. Я сделал пример отсюда, и мне удалось создать два разных пакета Debian, но я хочу, чтобы у каждого из них были свои зависимости. В результате получается CMakeLists.txt:

cmake_minimum_required (ВЕРСИЯ 2.8.0) проект (MyLib)

add_library(mylib mylib.cpp)

add_executable(mylibapp mylibapp.cpp)
target_link_libraries(mylibapp mylib) установить (TARGETS mylib 
  ARCHIVE
  DESTINATION библиотеки / Пример приложения / загрузки) / Компоненты для загрузки / загрузки / Компоненты для загрузки / загрузки / DESTINATION RUNTIME ~/Downloads/ Компонентные приложения ComponentExampleStart/ bin) установить (FESTES mylib.h DESTINATION ~/Downloads/ComponentExampleStart/ включить заголовки COMPONENT) файл (WRITE dummy_main1.c "int main(int argc, char** argv){вернуть 0. return 0;}")
add_executable(dummy_main2 dummy_main2.c) УСТАНОВИТЬ (ФАЙЛЫ ${CMAKE_CURRENT_SOURCE_DIR}/dummy_main2 DESTINATION /tmp КОМПОНЕНТ mylibapp ДОПОЛНИТЕЛЬНЫЕ РАЗРЕШЕНИЯ ВЛАДЕЛЕЦ ГРУППЫ ОБЪЕДИНЕННЫХ ВЫПОЛНЕНИЙ) (CPACK_GENERATOR "DEB")
SET (CPACK_SOURCE_GENERATOR TGZ)
SET (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
SET (CPACK_SET_DESTDIR "вкл.") Set(CPACK_DEB_COMPONENT_INSTALL ON__C_STAR_END_RACK__RUS__RUS__RUS__RUS__RUS_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_ID_SID_RACK_RACK_RACK_RACK_ID_RACK_ID_ID_ID_ID_ID_ID_ородная_установка Пример установки компонента CPack ")
set(CPACK_PACKAGE_VERSION "1.0.0")
set(CPACK_PACKAGE_VERSION_MAJOR "1")
set(CPACK_PACKAGE_VERSION_MINOR "0")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_PACKAGE_C_D_PACKENT_CENTING_CENTING_CENTING_CENT_SCENTING_STECT_STAR_CENTENT_CENT_SCENTCENT_ST) заголовки) набор (CPACK_COMPONENT_APPLICATIONS_GROUP "Runtime") установлен (CPACK_COMPONENT_LIBRARIES_GROUP "Развитие") набор (CPACK_COMPONENT_HEADERS_GROUP "Развитие") набор (CPACK_COMPONENT_LIBRARIES_DEPENDS "libxml2") комплект (CPACK_COMPONENT_HEADERS_DEPENDS "libxml2") набор (CPACK_DEBIAN_PACKAGE_DEPENDS "libusb-1.0-0")
SET (CPACK_PACKAGE_CONTACT "Пример") SET (CPACK_PACKAGE_FILE_NAME "$ {CMAKE_PROJECT_NAME} _ $ {VERSION} _ $ {CPACK_DEBIAN_PAC KAGE_ARCHITECTURE} ") include (CPack)

(ПРИМЕЧАНИЕ dummy_main1 и dummy_main2 заставляют shlibdeps работать, потому что для каждого пакета требуется как минимум один исполняемый файл).

Моя цель - создать 2 разных пакета Debian с разными зависимостями, например:

MyLib_1.0.0_amd64-Developers.deb --- depends on ---> libxml2
MyLib_1.0.0_amd64-Runtime.deb --- depends on ---> lubusb-1.0-0

но я не нахожу макрос CPACK, чтобы сделать это. Я прочитал много форумов и документации, но ничего из этого я не проверял. Макрос CPACK_DEBIAN_PACKAGE_DEPENDS работает нормально, но он устанавливает одинаковые зависимости для обоих пакетов. Есть ли способ архивировать мою цель? Я использую CMake 2.8, чтобы сделать это.

Спасибо!

1 ответ

Решение

Ну, наконец-то мне удалось изолировать зависимости. Проблема была в версии CMake, которую я использовал (2.8). Это можно сделать в последних выпусках (в настоящее время используется 3.3) с помощью макроса CPack: CPACK_DEBIAN__PACKAGE_DEPENDS

Другие вопросы по тегам