使用CPACK制作安装包

来源:互联网 发布:实时网速监控软件 编辑:程序博客网 时间:2024/05/21 07:15

使用CPACK制作安装包需要在CMakeLists.txt文件中加入如下内容。


############################################################

##                                                         #
## Setup PACKAGING                                         #
##                                                         #
############################################################
OPTION( CPACK_PACKAGES "Set to ON to build the packages. Requires cmake >2.4" ON )
IF (CPACK_PACKAGES)


INCLUDE(InstallRequiredSystemLibraries)


# ATTENTION: There is sometimes a _SOURCE_ version of an
# option as well, set both if necessary !

#create DEB install file
SET(CPACK_GENERATOR "DEB")
SET(CPACK_PACKAGE_CONTACT "support@pro.com")
# Create .tar.gz and .tar.tbz2 files:
SET(CPACK_GENERATOR "TBZ2")
SET(CPACK_SOURCE_GENERATOR "TBZ2")


# The plain 'package' target works correctly.
SET(CPACK_IGNORE_FILES        "/CVS/;/.svn/;.swp$;.#;/#;/build/")
# Since the 'package_source' target does a bold copy, define a list of
# files which should be excluded. Note that 'subpattern' matching is used,
# thus to exclude a directory use /mydir/
SET(CPACK_SOURCE_IGNORE_FILES "/CVS/;/.svn/;.swp$;.#;/#;/build/;~")


SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "XXXX")
SET(CPACK_PACKAGE_VENDOR "XXXX")
#SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
SET(CPACK_PACKAGE_VERSION_MAJOR "${ARCS_VERSION_MAJOR}")
SET(CPACK_PACKAGE_VERSION_MINOR "${ARCS_VERSION_MINOR}")
SET(CPACK_PACKAGE_VERSION_PATCH "${ARCS_VERSION_PATCH}")
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMAKE ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}")
SET(CPACK_STRIP_FILES "bin/cmake")
INCLUDE(CPack)

ENDIF (CPACK_PACKAGES)


之后,如果要生成二进制安装包,则在build目录下输入如下命令:

cpack -C CPackConfig.cmake

如果要生成源码安装包,则在build目录下输入如下命令:

cpack -C CPackSourceConfig.cmake


也可以输入make package命令生成安装包


在使用过程中,发现使用CPACK工具生成的deb包输入dpkg -i *.deb命令进行安装后,结果和输入make install命令得到的安装结果不完全相同,似乎CPACK方式生成的deb包只安装了库文件而没有安装我的可执行文件,而且库文件安装的位置也不是我输入make install命令后安装到的/usr/local/下,而是安装到了/usr下。原因不清楚。


后来发现有一个checkinstall的工具可以用来生成deb包,只要有了makefile就行,下次试试cmake+checkinstall的方式看看生成的deb包效果如何。



0 0
原创粉丝点击