在CMake教程的第6步中,它说“要创建源代码分发,您可以键入”cpack --config CPackSourceConfig.cmake
。我尝试了这个命令并获得了四个tarball:output.tar.bz
,output.tar.gz
,output.tar.xz
和output.tar.Z
。
tarball只是当前目录的压缩。 Makefile打包包含我当前系统的绝对路径。这意味着如果我将它分发给其他系统,我需要再次运行cmake。
那么使用cpack有什么意义呢?
答案 0 :(得分:0)
使用CPack创建源包的一个要点是不将版本控制文件包含在结果tarball中(参见CPACK_SOURCE_IGNORE_FILES变量)。
还可以进一步修改用于源包的文件列表。例如,可以排除内部文档(仅对开发人员有用),但包括一些预生成的文件,因此用户不需要使用其他工具(如Flex / Bison)来构建源包。
尽管CPack(尤其是其源包功能)的文档记录很少(例如,参见this mailing和this bugreport),但源包生成相对灵活。