【发布时间】:2012-03-26 09:34:33
【问题描述】:
根据FAQ,CMake 不会创建make dist 目标,可以使用CPack 创建源包。但是 CPack 只是将所有与CPACK_SOURCE_IGNORE_FILES 中的模式不匹配的文件制作成源目录的 tarball。
另一方面,由 autotools 生成的make dist 只捆绑它知道的文件,主要是编译所需的源。
任何人都有一种巧妙的方法来制作仅包含 CMakeLists.txt(及其依赖项)中指定的文件的源包?
【问题讨论】:
-
不是答案,但您可以使用您的 VCS 来执行此操作,例如
git archive如果您使用的是 git。 -
有一篇 2009 年的博文,但还是有点笨拙:agateau.com/2009/cmake-and-make-dist
-
不是答案,而是暗示您并不孤单:在某些项目中,我们维护并手动和自动生成名为
artefacts.txt的文本文件,然后我们用它来创建分发(在单独的构建目标)。文本文件包含源(在src或build文件夹中)目标和一些隐式规则(例如py => pyc) -
可能明确地
install(FILES ... DESTINATION ..)是要走的路。也许可以生成列表,但我宁愿手动维护它。我结了,这不是聪明的办法。