Debian packages by CMake CPack

Has anyone worked with a working example CPack script for debian packages with Qt and OpenGL dependencies?

I installed this

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" )

      

I googled around but never found a working example. My main problem is how to install the dependencies for libGLU first, then for libGL and the following libraries.

As soon as I create a deb, the installer says

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

      

where XXX is one of the libraries I listed earlier (mainly Qt libraries)

Currently my cmake version is 2.8.2 but the cpack_add_component command is not working

+3


source to share


2 answers


I don't think you can "order" dependencies in CMake. If you want a working example of CMakeLists creating a .deb dependency with qt dependencies it looks like this:



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 aba@robopec.com")
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/Debian/postinst")

include(CPack)

      

+6


source


You can use the CPack variable CPACK_DEBIAN_PACKAGE_SHLIBDEPS

:

set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)

      



This will automatically resolve dependencies.

+1


source







All Articles