用CMake 打包 deb包

jopen 10年前發布 | 116K 次閱讀 CMake 安裝制作

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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!