用CMake 打包 deb包

jopen 9年前

CMake 打包deb包. 由于整个工程都是通过cmake管理的,很方便!

这里只写出一些常用的:

1 版本控制信息:

    SET(MAJOR_VERSION 1)      SET(MINOR_VERSION 0)      SET(PATCH_VERSION 0)      SET(CPACK_GENERATOR "DEB")      SET(CPACK_PACKAGE_VERSION_MAJOR "${MAJOR_VERSION}")      SET(CPACK_PACKAGE_VERSION_MINOR "${MINOR_VERSION}")      SET(CPACK_PACKAGE_VERSION_PATCH "${PATCH_VERSION}")      SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.1-6)")      SET(CPACK_PACKAGE_DESCRIPTION "pro-cc service")      SET(CPACK_PACKAGE_CONTACT "support@pro.com")      include(CPack)

2 添加一些额外的依赖文件

SET(LIBS_DIR "$ENV{DBXML_DIR}/lib")  INSTALL(FILES ${CMAKE_SOURCE_DIR}/pro-cc.conf DESTINATION /etc/init)  INSTALL(FILES ${LIBS_DIR}/libdb-4.8.so ${LIBS_DIR}/libdbxml-2.5.so ${LIBS_DIR}/libxerces-c-3.0.so ${LIBS_DIR}/libxqilla.so.5 ${LIBS_DIR}/libxqilla.so.5.0.2  DESTINATION /usr/lib)

上面第二句的意思是 将pro-cc.conf文件安装时copy到 /etc/init下

第三句的意思是将库文件安装到/usr/lib下

生成deb包

make package

以上字段不一一讲解,很基础。不明白的可以百度或者cmake官网看文档。在cpack官网上说,cpack可以打包deb,但是始终没有找到如何加载额外的库文件到包里面,网上提供的一些没有尝试成功。就直接用INSTALL了

具体可参见:http://stackoverflow.com/questions/15461556/cpack-cannot-find-libraries-target-doesnt-exist-in-this-directory

http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack