cpack--config CPackSourceConfig.cmake实际上在做什么?

cpack--config CPackSourceConfig.cmake实际上在做什么?,cmake,Cmake,在CMake教程的第6步中,它说“要创建源代码发行版,您需要键入”cpack--config CPackSourceConfig.CMake。我尝试了这个命令,得到了四个tarball:output.tar.bz,output.tar.gz,output.tar.xz和output.tar.Z tarball只是当前目录的压缩。打包的Makefile包含我当前系统的绝对路径。这意味着如果我将它分发到其他系统,我需要再次运行cmake 那么,使用cpack有什么意义呢?使用cpack创建源代码包的

在CMake教程的第6步中,它说“要创建源代码发行版,您需要键入”
cpack--config CPackSourceConfig.CMake
。我尝试了这个命令,得到了四个tarball:
output.tar.bz
output.tar.gz
output.tar.xz
output.tar.Z

tarball只是当前目录的压缩。打包的Makefile包含我当前系统的绝对路径。这意味着如果我将它分发到其他系统,我需要再次运行cmake


那么,使用cpack有什么意义呢?

使用cpack创建源代码包的意义之一是不将版本控制文件包含到生成的tarball中(请参见变量)

还可以进一步修改源程序包的文件列表。例如,可以排除内部文档(仅对开发人员有用),但包括一些预生成的文件,因此用户不需要使用其他工具(如Flex/Bison)来构建源代码包


尽管CPack(尤其是它的源程序包功能)的文档记录得很差(请参见和),但源程序包生成相对灵活。

我还发现tarball包括以前的tarball,
output.tar.gz
includes
output.tar.gz
.Hm,您是否在源代码目录中创建tarbal?在这种情况下,这种行为是预期的-CPack只打包它在源目录中看到的所有文件。