CPack:git跟踪的唯一包文件

问题描述:

我正试图了解如何使用CPack。我想制作一个二进制和一个源代码包。二进制文件非常好,只包括必要的内容。但是,在源代码发行版中,基本上有所有文件出现在项目的根目录中 - 包括我从哪里运行CPack命令的CMake构建目录。CPack:git跟踪的唯一包文件

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

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

(包装整个目录到归档的东西我不需要CPack的。)

据我所知,你只能做一个大大的忽略文件列表配置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$") 

+0

咦,这是相当令人失望。不过谢谢你的回答! – mattmilten