CPack源档案在Travis CI上为空,但在本地不是

问题描述 投票:1回答:1

我正在使用CPack创建源档案:

cmake --build . --config Release --target package_source

这在我的本地Ubuntu计算机上运行良好,但是在Travis CI上构建时,生成的存档为空。没有错误消息。启用--debug时,我已经检查了CPack日志,除了没有将文件复制到临时安装空间外,没有看到任何区别。源路径和目标路径正确,但是找不到文件。

为什么在某些计算机上而不是其他计算机上建立归档时,归档为何为空?

cmake travis-ci cpack
1个回答
0
投票

在同一个问题上呆了十多个小时后,我终于弄明白了。也许对您来说一样。在排除所有其他原因之后,这实际上是最合乎逻辑的事情:文件被忽略!

我从package_source跳过了源代码中的“ build”目录:

# exclude build directories like /build/, /build-* and /build_*
list(APPEND CPACK_SOURCE_IGNORE_FILES "/build[\\-_/]")

但是travis上的路径是/ home / travis / build / AlexanderLanin / ccache

选项1

我不是正则表达式专家,但这至少应该使您走上正确的道路:

list(APPEND CPACK_SOURCE_IGNORE_FILES "^((?!/home/travis/).*|/home/travis/.+)/build[\\-_/]")

https://regex101.com/r/DJfeDi/1中解释

选项2

假设您在CMakeLists.txt中,则稍微简单一些:

list(APPEND CPACK_SOURCE_IGNORE_FILES "^${CMAKE_SOURCE_DIR}/build[\\-_/]")
list(APPEND CPACK_SOURCE_IGNORE_FILES "^${CMAKE_BINARY_DIR}")
© www.soinside.com 2019 - 2024. All rights reserved.