如何从 CPack 的源代码版本中排除我的构建目录?
Posted
技术标签:
【中文标题】如何从 CPack 的源代码版本中排除我的构建目录?【英文标题】:How do I exclude my build directory from CPack's source release? 【发布时间】:2018-02-21 14:13:24 【问题描述】:我刚刚意识到我的 CPack 版本的 package-version-Source.tar.Z 文件大小为 1.4 GB。事实证明,它包含了我的整个构建目录,包括实验性二进制文件、以前的版本等,都在每个 tarball 中。
如何从 CPack 版本中排除我的build
目录(最好还有我的.vscode
和.git
目录)?我在 CMakeLists.txt 中的 CPack 行如下所示:
include (InstallRequiredSystemLibraries)
set (CPACK_RESOURCE_FILE_LICENSE
"$CMAKE_CURRENT_SOURCE_DIR/LICENSE")
set (CPACK_PACKAGE_VERSION_MAJOR "$Pwr_VERSION_MAJOR")
set (CPACK_PACKAGE_VERSION_MINOR "$Pwr_VERSION_MINOR")
include (CPack)
【问题讨论】:
看起来您正在搜索 CPACK_SOURCE_IGNORE_FILES 变量,该问题中描述了该变量的用法:***.com/questions/17935748/…。 您的INSTALL
命令是什么?请注意,打包应该从安装树而不是构建树进行,因为后者的文件通常不可移植。
【参考方案1】:
我遇到了同样的情况,尽管生成的源 tarbal 的大小小于你的,只有几百 MB。
我的解决方案是在之前添加一行
include(CPack)
在你的情况下,它看起来像这样
set(CPACK_SOURCE_IGNORE_FILES "build")
include(CPack)
由于"build"
是正则表达式,因此不仅您的build
目录将被排除,名称与build
匹配的文件和目录也将被排除,例如build-dbg
、mybuild
etc..
【讨论】:
以上是关于如何从 CPack 的源代码版本中排除我的构建目录?的主要内容,如果未能解决你的问题,请参考以下文章