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
АРХИВ
DESTINATION ~ / Загрузки / ComponentExampleStart / lib
Компонент библиотеки)

установить (TARGETS mylibapp
RUNTIME
DESTINATION ~ / Загрузки / ComponentExampleStart / bin
КОМПОНЕНТНЫЕ ПРИЛОЖЕНИЯ)

установить (ФАЙЛЫ mylib.h
DESTINATION ~ / Загрузки / ComponentExampleStart / include
КОМПОНЕНТНЫЕ заголовки)

file (WRITE dummy_main1.c "int main (int argc, char ** argv) {return 0;}")
add_executable (dummy_main1 dummy_main1.c)
УСТАНОВИТЬ (ФАЙЛЫ $ {CMAKE_CURRENT_SOURCE_DIR} / dummy_main1 DESTINATION / tmp Заголовки компонентов ДОПОЛНИТЕЛЬНЫЕ РАЗРЕШЕНИЯ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)

file (WRITE dummy_main2.c "int main (int argc, char ** argv) {return 0;}")
add_executable (dummy_main2 dummy_main2.c)
УСТАНОВИТЬ (FILES $ {CMAKE_CURRENT_SOURCE_DIR} / dummy_main2 DESTINATION / tmp COMPONENT mylibapp ДОПОЛНИТЕЛЬНЫЕ РАЗРЕШЕНИЯ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)

SET (CPACK_GENERATOR "DEB")
SET (CPACK_SOURCE_GENERATOR TGZ)
SET (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
SET (CPACK_SET_DESTDIR "включено")
установлено (CPACK_DEB_COMPONENT_INSTALL ON)
набор (CPACK_PACKAGE_NAME "MyLib")
набор (CPACK_PACKAGE_VENDOR "CMake.org")
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "MyLib - Пример установки компонента CPack")
набор (CPACK_PACKAGE_VERSION "1.0.0")
набор (CPACK_PACKAGE_VERSION_MAJOR "1")
установлено (CPACK_PACKAGE_VERSION_MINOR "0")
установить (CPACK_PACKAGE_VERSION_PATCH "0")
набор (CPACK_PACKAGE_INSTALL_DIRECTORY "Пример компонента CPack")
набор (заголовки библиотек приложений CPACK_COMPONENTS_ALL)
набор (CPACK_COMPONENT_APPLICATIONS_GROUP "Время выполнения")
набор (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_PACKAGE_ARCHITECTURE}")

включают в себя (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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]