2012-04-10 145 views
3

有人曾經爲Qt和OpenGL依賴關係的debian軟件包提供了一個CPack腳本的工作示例嗎?CMake CPack debian軟件包

我設置這個

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

我GOOGLE了四周,但沒有找到工作的例子。我的主要問題是如何首先爲libGLU設置依賴項,然後爲libGL和以下庫設置依賴項。

一旦我創建的deb安裝程序提示

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

其中XXX是一個我以前(主要是Qt庫)

目前我的CMake版本2.8.2是但cpack_add_component命令列出的庫不起作用

回答

6

我不認爲你可以「訂購」CMake的依賴關係。 如果你想有一個CMakeLists生成使用Qt依賴一個.deb的工作的例子來看一下:

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)