CPack:仅包装由git跟踪的文件

时间:2017-07-27 16:05:15

标签: git cmake cpack

我正在尝试了解如何使用CPack。我想生成二进制和源包。二进制文件非常精细,仅包括必要的内容。但是在源代码发布中,项目的根目录中基本上存在所有文件 - 包括我运行CPack命令的CMake构建目录。

由于可能有多个构建目录,我无法看到如何将它们全部排除在源代码包之外。

set(CPACK_SOURCE_IGNORE_FILES "*.git*")工作正常但理想情况下我想将所包含文件的集合仅限制为由版本控制跟踪的文件集,例如git,首先。并且,不,我不考虑在cpack可行选项之前确保我的项目目录完全清理。

(将整个目录打包到存档中是我不需要CPack的。)

1 个答案:

答案 0 :(得分:2)

据我所知,您只能通过制作一个很棒的大忽略文件列表来配置CPack源包文件。您可以从自己的.gitignore文件或其他来源获取灵感。例如:

list(APPEND CPACK_SOURCE_IGNORE_FILES "/\.git/")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/CMakeFiles/")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/_CPack_Packages/")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/bin(ary)?/")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/build/")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/dist/")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/libs?/")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/logs?/")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/objs?/")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/[tT]e?mp/")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/___pycache__")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/\.cache")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/\.gitignore.*")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/CMakeCache.txt")
list(APPEND CPACK_SOURCE_IGNORE_FILES "\.pyc$")