用CMake 打包 deb包
jopen
10年前
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