Пакеты debian CMake CPack

Кто-нибудь работал с рабочим примером сценария CPack для пакетов Debian с зависимостями Qt и OpenGL?

Я установил этот

set (CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.1-6), libgcc1 (>= 1:3.4.2-12), libQtOpenGL (>=4.6.0), libQtCore (>=4.6.0), libQtGui (>=4.6.0), libglut (>=3.0), libICE (>=6.0), libX11 (>=6.0), libXext (>=6.0), libXmu (>=6.0), libXi (>=6.0), libstdc++ (>=6.0), libm (>=6.0), libgcc_s (>=1.0), libc (>=6.0), libGLU, libGL (>=1.0), libpthread" )

Я гуглил, но так и не нашел рабочего примера. Моя основная проблема заключается в том, как установить зависимости сначала для libGLU, затем для libGL и следующих библиотек.

Как только я создаю deb, установщик говорит

 **Error: Dependency is not satisfiable: libXXX**

где XXX — это одна из библиотек, которые я перечислил ранее (в основном библиотеки Qt)

В настоящее время моя версия cmake 2.8.2, но команда cpack_add_component не работает


person linello    schedule 10.04.2012    source источник


Ответы (2)


Я не думаю, что вы можете «заказать» зависимости в CMake. Если вам нужен рабочий пример CMakeLists, создающий .deb с зависимостями qt, посмотрите:

project(QExhibitor)
cmake_minimum_required(VERSION 2.8)

FIND_PACKAGE(Qt4 REQUIRED QtNetwork QtGui QtCore QtXml)
FIND_PACKAGE(CSSRobopec REQUIRED)
#Some non interesting things ...
#.....
add_executable(QExhibitor ${QT_SOURCES} ${QT_RESOURCES_CPP} ${QT_FORMS_HPP} ${QT_MOC_HPP})
target_link_libraries(QExhibitor ${QT_LIBRARIES} ${CSSRobopec_LIBRARIES})

INSTALL(TARGETS QExhibitor DESTINATION /reetiPrograms/RApplications/Applications/)
INSTALL(FILES Icons/RQExhib.png DESTINATION /reetiPrograms/RApplications/Icons)

set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "2")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "cssrobopec,libqt4-xml,libqt4-network,libqtgui4,treeupdatablereeti")
set(CPACK_PACKAGE_DESCRIPTION "Configure UExhibitor and launch missions")
set(CPACK_PACKAGE_CONTACT "Adrien BARRAL [email protected]")
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/Debian/postinst")

include(CPack)
person Adrien BARRAL    schedule 10.04.2012

Вы можете использовать переменную CPACK_DEBIAN_PACKAGE_SHLIBDEPS CPack. :

set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)

Это автоматически разрешит зависимости.

person AxeEffect    schedule 12.07.2015
comment
Спасибо за это. Я искал этот вариант! - person hbobenicio; 30.09.2016