【问题标题】:How do I exclude my build directory from CPack's source release?如何从 CPack 的源代码版本中排除我的构建目录?
【发布时间】: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 变量,该问题中描述了该变量的用法:stackoverflow.com/questions/17935748/…
  • 您的INSTALL 命令是什么?请注意,打包应该从安装树而不是构建树进行,因为后者的文件通常不可移植。

标签: cmake cpack


【解决方案1】:

我遇到了同样的情况,尽管生成的源 tarbal 的大小小于你的,只有几百 MB。

我的解决方案是在之前添加一行

include(CPack)

在你的情况下,它看起来像这样

set(CPACK_SOURCE_IGNORE_FILES "build")
include(CPack)

由于"build" 是正则表达式,因此不仅您的build 目录将被排除,名称与build 匹配的文件和目录也将被排除,例如build-dbgmybuildetc..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 2016-05-22
    • 2015-05-12
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    相关资源
    最近更新 更多