CPack:仅打包 git 跟踪的文件
CPack: only pack files tracked by git
我正在尝试了解如何使用 CPack。我想制作一个二进制文件和一个源代码包。二进制的非常好,只包括必要的东西。但是,在源代码分发中,项目的根目录中基本上存在 all 文件 - 包括我从中 运行 CPack 命令的 CMake 构建目录。
由于一个人可能有多个构建目录,我看不出如何将它们全部排除在源包中。
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$")
等等
我正在尝试了解如何使用 CPack。我想制作一个二进制文件和一个源代码包。二进制的非常好,只包括必要的东西。但是,在源代码分发中,项目的根目录中基本上存在 all 文件 - 包括我从中 运行 CPack 命令的 CMake 构建目录。
由于一个人可能有多个构建目录,我看不出如何将它们全部排除在源包中。
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$")
等等