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